Se connecter avec
S'enregistrer | Connectez-vous

Pblm affichage d'une string en C++

Dernière réponse : dans Programmation

Bonjour a tous. Je suis débutant en C++ depuis seulement hier et j'ai un probleme avec mon premier programme :

#include <iostream>
using namespace std;
#include<string>

int main()
{ string phrase;

cout<<"Saisissez votre phrase"<<endl;
cin>>phrase;
cout<<phrase<<endl;
return 0;
}


Je saisi une phrase et je voudrais ensuite qu'elle s'affiche, mais seul le premier mot de la phrase s'affiche. Par exemple si je saisi "vive le forum programmation", il me ressortira "vive".

Pouvez vous m'aider moi le pauvre petit noob?
Merci d'avance de votre aide.

Autres pages sur : pblm affichage string

Lassé par la pub ? Créez un compte
Expert Programmation

C'est pas un bug d'affichage, c'est le comportement normal de cin>>phrase; qui s'arrete au premier caractère "whitespace" recontré. Donc quand il rencontre l'espace, il s'arrête, et ta chaine contient uniquement le premier mot.

Pour récupérer tout une ligne dans ta chaine, essaie la fonction getline() de <string>. (exemple: getline( cin, phrase ); )
Expert Programmation

Tiens ouais, j'avais pas vu... Teste ça: getline(cin, phrase,'\n');
Le dernier paramètre indique à la fonction de s'arrêter au caractère '\n' qui est l'un des caractères utilisés pour indiquer la fin d'une ligne.
Expert Programmation

#include <iostream>
#include <cstdio>
using namespace std;
#include <string>

int main()
{
string phrase;
cout<<"Saisissez votre phrase"<<endl;
getline(cin, phrase,'\n');
cout<<phrase<<endl;
return 0;
}



Chez moi ça marche impec, Windows/Linux, avec g++.

EDIT: Quel système d'exploitation tu utilises, quel compilateur, et as tu pensé a recompiler ton programme (sait on jamais, lol)?
Lassé par la pub ? Créez un compte
Tom's guide dans le monde