Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2056 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Tableau de caractère et $...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau de caractère et $...

n°2035783
Santoryu
Posté le 13-11-2010 à 14:17:50  profilanswer
 

Bonjour.
 
Dans le cadre d'un travail pour l'école, je dois entrer un texte dans un tableau de caractère via la fonction cin.get().
J'ai donc également une valeur STOP='$' pour sortir de la boucle (ce qui signifie que le texte est fini).
 
Mais le problème c'est que lorsque je rentre un texte quelqconque du genre "Salut!$", je me retrouve après avec un "Salut!$"²". En fait il rajoute des petits caractères au hasard selon le texte...
 

Spoiler :

#include <iostream>
 
using namespace std;
 
int main()
{const char STOP='$';
const int MAX=500 ;
char t1[MAX], c;
int ind=0;
 
    cout << "Entrez votre texte." << endl;
 
        do {
    cin.get(c);
    t1[ind]=c;
    ind=ind++;
    }
    while (c!=STOP && ind<MAX) ;
 
    cout << t1;
 
 return 0;
}


 
Merci de votre aide.  :jap:

mood
Publicité
Posté le 13-11-2010 à 14:17:50  profilanswer
 

n°2035785
breizhbugs
Posté le 13-11-2010 à 14:23:38  profilanswer
 

Bonjour,
pour que cout l'affiche correctement, il faut que t1 soit une chaine à zero terminal, c'est a dire que la fin de la chaine est marquée par '\0'
donc après ton while tu ecris un " t1[ind]='\0'; " et cela devrait fonctionner.
Edit: d'ailleurs je ne crois pas que le caractère $ doit apparaitre dans ta chaine finale (cout << t1) car il marque la fin de la saisie uniquement.
je changerais donc en:

Code :
  1. ...
  2.      cin.get(c);
  3.      while(c!=STOP && ind<MAX-1)
  4.      {
  5.          t1[ind]=c;
  6.          ind=ind++;
  7.      }
  8.      t1[ind]='\0';
  9. ...


Message édité par breizhbugs le 13-11-2010 à 14:27:50

---------------
Seul Google le sait...
n°2035786
mr simon
Posté le 13-11-2010 à 14:25:23  profilanswer
 

une chaîne de caractère se termine par la caractère '\0', donc il faut que tu rajoutes la fin de ta boucle: "t1[ind] = 0;".
 

n°2035787
Santoryu
Posté le 13-11-2010 à 14:38:24  profilanswer
 

Ok merci, ça a l'air de bien marcher. ^^
 
Sinon pourriez vous m'expliquer la différence entre :
cin.get(c);
cin >> c;
 
Merci.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Tableau de caractère et $...

 

Sujets relatifs
Structure en c sur un tableau de chaine de caracterePb pour rentrer une chaine de caractere dans un tableau !
Generer aleatoirement un caractère à partir d'un tableauCaractère spéciaux dans tableau Word
Comment trier des chaines de caractère dans un tableau ?tableau d'une chaine de caractere
Decouper une chaine en un tableau a chaque caractèreModification d'un caractère dans un tableau
[VB] Intégration chaîne de caractère dans tableauefacer les caractere d'un tableau de char
Plus de sujets relatifs à : Tableau de caractère et $...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR