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.