Pourquoi ma chaîne est-elle ignorée dans ce qui suit?sk sk sk sk sk sk
int main() {
int option;
cin >> option;
while(!cin.good()) {
cout << "Looping" << endl;
cin >> option;
}
}
Pourquoi ma chaîne est-elle ignorée dans ce qui suit?sk sk sk sk sk sk
int main() {
int option;
cin >> option;
while(!cin.good()) {
cout << "Looping" << endl;
cin >> option;
}
}
Les erreurs dans les flux internes sont collantes. Vous devez effacer l'état d'erreur avant que cin
ne fonctionne à nouveau.
int main() {
int option;
cin >> option;
while(!cin.good()) {
cout << "Looping" << endl;
cin.clear(); // ignore erroneous line of input:
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cin >> option;
}
}
menu.cpp: Dans la fonction membre 'int notekeeper :: menu :: getOption()': menu.cpp: 27: erreur: conversion invalide de 'int (*)() throw()' en 'std :: streamsize ' menu.cpp: 27: erreur: initialisation de l'argument 1 de' std :: basic_istream <_CharT, _Traits> & std :: basic_istream <_CharT, _Traits> :: ignore (std :: streamsize, nom de type _Traits :: int_type) [ avec _CharT = char, _Traits = std :: char_traits
@Will: 'max' est une fonction; notez les parenthèses après. – Potatoswatter
Vous n'êtes pas en train de taper une lettre, n'est-ce pas? – JoshD
Je m'attendais à m'arrêter pour vous permettre d'entrer mais il a juste fait LoopingLoopingLooping etc. J'ai essayé ceci sur ciawinwin vista et g ++ ubuntu linux. – Will