Saisir une phrase en C++

redpooka Messages postés 55 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 18 mai 2004 - 19 févr. 2003 à 13:25
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 - 21 févr. 2003 à 07:43
En c++
Comment faire pour rentrer une phrase dans une string ?
Car à cause des espaces il ne prend que le premier mot.

Merci de votre aide

4 réponses

cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003
19 févr. 2003 à 13:48
const TAILLE = 80;
char buffer [TAILLE];

cin.getline(buffer, TAILLE );

puis après tu mets buffer dans ton string.
(str = buffer);

raph

***raph***
0
redpooka Messages postés 55 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 18 mai 2004 2
19 févr. 2003 à 14:31
Merci j'aimerais savoir comment debugger ce probleme


string commande, temp;

 while (cin >> temp)
  {
   if (temp == "0") break;
   commande = commande + " " + temp ;
   cin.clear();
  } 


Ca prend toute la chaine jusqu'a 0, or à la place j'ai mis \n et quand j'appuie sur entrer ca ne marche pas ?
Comment faire ?
0
cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003
19 févr. 2003 à 15:07
ca marche pas quand tu mets if (temp=="\n") au lieu de 0 ?
c'est normal, puisque \n agit comme séparateur et tu ne le récuperera jamais dans temp.
Avec getline comme je t'ai dit ca doit marcher.

***raph***
0
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
21 févr. 2003 à 07:43
bonjour,
si vous voulez que "cin" soit sensible aux lignes vides il faut
lui dire de ne pas faire "skipws"
string s;
cin.unsetf(ios::skipws);//tenir compte des espaces
while (cin >> s) cout << s << "|";
cout << endl;
0
Rejoignez-nous