Compte tenu du programme suivantlecture jusqu'à nouvelle ligne en C++ va dans une boucle infinie
#include <iostream>
#include <string>
using namespace std;
int main() {
int integer;
cin >> integer;
if (!cin) {
string str;
char ch;
while ((ch = cin.get()) != '\n') {
cout << "scanning" << endl;
cout << "got " << static_cast<int>(ch) << endl;
}
}
return 0;
}
Administrée ce fichier d'entrée (entrée redirigée)
x123
Avec une nouvelle ligne à la fin, pourquoi le programme entre-t-il dans une boucle infinie? Ne devrait-il pas s'arrêter après avoir rencontré la nouvelle ligne à la fin du fichier? Je continue à obtenir la valeur de ch
récupéré comme -1
..
Merci!
Remarquecin.ignore()
ne semble pas aider à résoudre le problème ici
C'est le cas, et puis quand je scanne jusqu'à la fin pour essayer de trouver une nouvelle ligne, je reçois une boucle infinie – Curious
que j'ai ajouté dans un retour à la ligne manuellement. C'est là – Curious
Vais-je 'cin.ignore()'? Nope n'aide pas – Curious