Tableau de caractère et $... - C++ - Programmation
Marsh Posté le 13-11-2010 à 14:23:38
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 : 
 | 
Marsh Posté le 13-11-2010 à 14:25:23
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;". 
 
Marsh Posté le 13-11-2010 à 14:38:24
Ok merci, ça a l'air de bien marcher. ^^ 
 
Sinon pourriez vous m'expliquer la différence entre : 
cin.get(c); 
cin >> c; 
 
Merci.
Marsh Posté le 13-11-2010 à 14:17:50
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...
#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.