IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Lecture et enregistrement dans un tableau caractère par caractère


Sujet :

C++

  1. #1
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut Lecture et enregistrement dans un tableau caractère par caractère
    Bonjour,
    en fait, j'ai un petit problème pour un code que je dois faire en C, je dois justifier un texte. Alors j'ai trois fonction getCar() pour ajouter des caractères dans un tableau, getSpace() pour ajouter des espaces, et justif() pour justifier le texte, mon problème vient de getCar() qui dois lire caractère par caractère avec cin.get() et enregistrer dans char car[].
    Cela fais 3 jour que je suis sur ceci est je ne comprend pas comment faire.
    Si vous pourriez m'expliquer se serait très gentil a vous.
    j'arrive a récupérer un seul caractère par exemple:
    $> bonjour
    j'arrive à récupérer 'b' mais je ne comprend pas comment passer à la deuxieme lettre :/ peut être avec for ou while mais je sais pas
    Enfin bonne fin de journée a vous, si il y a des âmes charitable pour estropié mon problème
    A bientôt je l'espère
    Thibaud

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Avec un bout de code on pourrait plus facilement t'aider.

    A+
    K

  3. #3
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    ah tenez je suis désolée
    je met le code que j'ai fait actuellement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #include <iostream>
     
    using namespace std;
     
    void getCar() {
    cin.get(char car);
    }
     
    int main(int argc, char **argv) {
    char tabcar[10];
    char caractere = getCar();
    tabcar[0] = caractere;
    cout<<"Je n'ai q'un seul caractère qui est "<<caractere<<endl;
    }
    le problème c'est que je voudrais pouvoir stocker plusieur lettre et ne pas retaper plusieur fois cin.get c'est pour que je puisse stocker le texte rentré et le justifié.
    Dans mon code je n'en suis que là.
    merci beaucoup KilVaiDeN

  4. #4
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    euh tu es sur que ca ca compile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void getCar() {
    cin.get(char car);
    }
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Tu mélanges le C et le C++ il faut en choisir un.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  6. #6
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    oui je sais bien que je mélange mais euh mes professeur mon toujours appris comme ceci...Il disait on mélange mais c'est pas grave.
    et maintenant je suis perdu...
    arf oui cela ne compile pas ....

    snifff
    vous pourriez pas m'indiquer une solution
    j'aurais bien voulu donner plus de code mais je suis complètement perdu

  7. #7
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    si c'est du C, tu t'es gourré de forum (et de langage dans tes exemples).
    si c'est du C++, alors tu ne dois pas trop piger la différence entre les deux... quel langage dois tu utiliser alors ?

    [edit]
    >oui je sais bien que je mélange mais euh mes professeur mon toujours appris comme ceci...Il disait on mélange mais c'est pas grave.

    tu pourras dire a tes profs que c'est en étant rigoureux soit meme qu'on transmet son savoir avec interet...
    [/edit]
    besoin de réponses ? demande a un pote

  8. #8
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    c'ets moi qui ai déplacé dans C++ mais je dois avoir que je ne sais pas ce qu'il veut fiare :s
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  9. #9
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    Bon on va utiliser du C++ alors et je dois lire caractère par caractère un texte entré. c'est un programme sur console. je sais qu'il faut que j'utilise cin.get() mais je ne sais pas trop comment l'utiliser et encore moins comment lire plusieur caractère et les enregistrer dans un tableau.
    Pour ma justification je dois lire les 10 premier caractère du texte "Bonjour je suis thibaud"
    cela donnera:
    "Bonjour je
    suis thiba
    ud"
    Le problème du mot coupé je m'en charge mais je comprend pas comment utiliser cin.get() en fait :/
    vous êtes gentil d'essayer de m'aider et de me corriger

    Je transmettrai a mes professeur

  10. #10
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    Citation Envoyé par hiko-seijuro
    c'ets moi qui ai déplacé dans C++ mais je dois avoir que je ne sais pas ce qu'il veut fiare :s
    effectivement, il a l'air de vouloir utiliser le c++ (sans le savoir )

    moi, je suggere d'utiliser la surcharge de cin.getline() qui permet de redéfinit le caractere de fin, d'utiliser un std::string pour stocker le flux d'entrée, et roule ma poule
    besoin de réponses ? demande a un pote

  11. #11
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    Citation Envoyé par akrogames
    Bon on va utiliser du C++ alors et je dois lire caractère par caractère un texte entré. c'est un programme sur console. je sais qu'il faut que j'utilise cin.get() mais je ne sais pas trop comment l'utiliser et encore moins comment lire plusieur caractère et les enregistrer dans un tableau.
    Pour ma justification je dois lire les 10 premier caractère du texte "Bonjour je suis thibaud"
    cela donnera:
    "Bonjour je
    suis thiba
    ud"
    Le problème du mot coupé je m'en charge mais je comprend pas comment utiliser cin.get() en fait :/
    vous êtes gentil d'essayer de m'aider et de me corriger

    Je transmettrai a mes professeur
    as tu essayé d'utiliser une boucle while avec la condition "tant que le caratere saisi est différent de '...' (peut importe, tu choisis ton caractere) ?
    besoin de réponses ? demande a un pote

  12. #12
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    ah oui pk pas utiliser tant que la caractère '\n' n'est pas tapé.
    Mais le problème c'est que si dans le texte à justifié la personne saute une ligne...
    Au partielle j'ai eu une exercice presque similaire ou on devais lire un texte caractère par caractère et après un . mettre un ' ' et une majuscule mais je n'ai pas su faire sinon je ne serais pas venu içi.

  13. #13
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    Citation Envoyé par akrogames
    ah oui pk pas utiliser tant que la caractère '\n' n'est pas tapé.
    Mais le problème c'est que si dans le texte à justifié la personne saute une ligne...
    alors il faut trouver un autre caractere de fin de saisi (que la personne devra saisir explicitement (genre, un diese - '#').
    ou alors, le nombre de caracteres saisis doit etre constant, et la, tu t'emmerdes meme pas avec ca, et tu fait un get tant que le nombre de caracteres a choper n'est pas atteint

    Citation Envoyé par akrogames
    Au partielle j'ai eu une exercice presque similaire ou on devais lire un texte caractère par caractère et après un . mettre un ' ' et une majuscule mais je n'ai pas su faire sinon je ne serais pas venu içi.
    la classe std::string fournit une methode replace() je crois (mais je ne suis pas sur, donc a vérifier avec la doc). dans une telle méthode, tu lui dit par exemple de remplacer "." par ". " (avec un espace apres le point )
    besoin de réponses ? demande a un pote

  14. #14
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    hum d'accord
    Je vais tenter de faire une esquisse du code et je vous le montre après mais je crois que vous ne m'avez pas compris.
    Ce que je voudrais c'est lire les n premier caractère les stocker dans un tableau et après revenir récupérer la suite et continuer a lire...
    HUM en fait je crois que je dis n'importe quoi là :/
    Comment vous feriez pour justifier un texte vous ?
    Moi je vais lire un texte stocker dans un tableau appliquer une fonction justif()
    et ajouter des espaces avec une fonction getSpace()
    enfin je vois ceci comme cela.
    Comme cela m'énerve de ne pas pouvoir réussir ceci facilement :'(

  15. #15
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    pour moi, la justification est completement indépendante de la saisie, et doit etre traitée a part (et apres).

    dans un premier temps, récupere la saisie entiere de ton bonhomme, et quand tu as tout, ensuite tu essaye de justifier le texte (et essaye de procéder par étape, ca sera plus facile a coder, a tester, et a debugger).

    pour justifier, tout dépend de ton sujet ; est ce que c'est spécifié comment doit se comporter la justif ?
    moi, je ne pense pas qu'on ait le droit de couper un mot en deux...
    besoin de réponses ? demande a un pote

  16. #16
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    hum non on ne dois pas couper un mot en deux mais pour la justification je m'en occupe.
    Alors pour la saisie je récupère tous et je stocke dans un tableau à 1 dimension.
    Après avec la justification je stocke dans un tableau 2 dimensions.
    vous êtes d'accord avec ceci ?

  17. #17
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    Citation Envoyé par akrogames
    hum non on ne dois pas couper un mot en deux mais pour la justification je m'en occupe.
    Alors pour la saisie je récupère tous et je stocke dans un tableau à 1 dimension.
    Après avec la justification je stocke dans un tableau 2 dimensions.
    vous êtes d'accord avec ceci ?
    puisqu'on a dit qu'on etait en C++ (et pas en C), pourquoi tu t'embarasse (pour rester poli ) avec des tableaux de caracteres directement hérités du C ? pourquoi ne pas utiliser une std::string ?
    besoin de réponses ? demande a un pote

  18. #18
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    je ne sais pas ce qu'est un std::string
    je n'ai jamais appris mais si c'est plus performant pourquoi pas

  19. #19
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    ben fait un pti google dessus, et regarde sur la msdn aussi, t'auras des indications.
    en gros, c'est une classe de la bibliotheque standard du C++ qui gère elle meme la mémoire allouée pour ses caracteres (puisque string, ca représente une chaine de caracteres, tu l'auras compris)

    [edit]
    vois ca : http://msdn2.microsoft.com/en-us/lib...yz(VS.80).aspx
    ne prete pas attention au nom de la classe (basic_string est en fait la classe de base de string, mais si on rentre dans des considérations objet trop compliquées, tu vas te perdre) ; retiens juste que tout ce qui est dans cette classe ce retrouve dans std::string.
    besoin de réponses ? demande a un pote

Discussions similaires

  1. [MySQL] Faire une recherche dans un tableau créer par mysql_fetch_array avec in_array
    Par arnaudperfect dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 12/11/2007, 15h13
  2. [Débutant] Lecture caractère par caractère
    Par boober31 dans le forum Débuter
    Réponses: 10
    Dernier message: 28/09/2007, 14h52
  3. Réponses: 5
    Dernier message: 30/07/2006, 17h49
  4. Réponses: 10
    Dernier message: 19/06/2006, 19h04
  5. URGENt: recherche dans un tableau trié par ordre alphabetiqu
    Par JulPop dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2005, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo