Saisir une phrase en C++

Signaler
Messages postés
55
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
18 mai 2004
-
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
-
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

Messages postés
269
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
9 juin 2003

const TAILLE = 80;
char buffer [TAILLE];

cin.getline(buffer, TAILLE );

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

raph

***raph***
Messages postés
55
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
18 mai 2004
2
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 ?
Messages postés
269
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
9 juin 2003

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***
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
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;