Pb getline dans switch

cs_tintin72 Messages postés 122 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 22 juillet 2006 - 22 août 2003 à 22:46
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 23 août 2003 à 14:29
Bonjour,

Je débute en c++ et travaille pour l'instant en mode console
(ben ouais, mais pour apprendre c'est bien).
j'ai un problème quand j'inclue getline dans une fonction switch, ex:

string laPhrase;
int choix;

switch(choix)
{
case 1:
cout<<"Entrez une phrase :"<<endl;
getline(cin,laPhrase);
break;

case 2:
etc.........
}

Lorsque que le case 1 s'exécute, il affiche bien le cout<< mais zappe complètement la saisie de la phrase, autrement dit getline, et passe à la suite du programme.
Quelqu'un pourrait me dire pourquoi????
Merci!

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 août 2003 à 23:09
"console pour apprendre c'est bien"
A part te faire perdre du temps, tu y vois un autre interet ?
Tu es certain de la syntaxe ??? Tu vois, moi je l'ignore totalement et c'est tres bien, place libre pour les choses utiles.
Penses-y.
BruNews, ciao...
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
22 août 2003 à 23:58
heu le 1er param de getline est un fichier
cin en est-un, ce n'est pas un mot-cle du langage C++ ?

Bon de toutes facon ecrit ton code en C et non en C++:

case1:
{
char buffer[256];
printf("input the sentence ...\n");
gets(buffer);
break;
}

ou sinon au lieu de cin met stdin !!

:-p :-p :-p :shy) :-p :-p :-p :shy) :-p :-p :shy)
:shy) :-p :shy) :shy) :-p :shy) :shy) :shy) :-p :shy) :-p
:shy) :-p :shy) :shy) :-p :shy) :shy) :shy) :-p :shy) :-p
:-p :-p :shy) :shy) :-p :-p :-p :shy) :-p :-p :shy)
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 août 2003 à 13:46
cin n'est pas un mot clé mais un istream, donc il convient bien pour la premier argument de getline.
D'ailleurs chez moi le code de tintin72 marche très bien
0
flatmax Messages postés 37 Date d'inscription jeudi 9 mai 2002 Statut Membre Dernière intervention 30 août 2003
23 août 2003 à 14:22
essaye ce code :
cin.getline(laPhrase, sizeof(laPhrase));
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 août 2003 à 14:29
Non ca marchera pas car laPhrase est de type string et il faut un char*.
Pourquoi pas tout simplement cin >> laPhrase;
?
0
Rejoignez-nous