C++ cOUT不断重复

C++ cOUT不断重复,c++,repeat,C++,Repeat,这条线如果!cin.good cout您需要消耗坏输入,因为它只会保留在缓冲区中。您需要消耗坏输入,因为它只会保留在缓冲区中。您的无效输入在输入缓冲区中。如果你只是想把它全部扔掉,你可以这样做: ... if (!cin.good()) { cout << "No letters" << endl; cin.clear(); // clear error flags cin.sync(); // synchronize stream with

这条线如果!cin.good cout您需要消耗坏输入,因为它只会保留在缓冲区中。

您需要消耗坏输入,因为它只会保留在缓冲区中。

您的无效输入在输入缓冲区中。如果你只是想把它全部扔掉,你可以这样做:

...
if (!cin.good()) 
{
    cout << "No letters" << endl;
    cin.clear(); // clear error flags
    cin.sync();  // synchronize stream with input source
}
...

无效输入在输入缓冲区中。如果你只是想把它全部扔掉,你可以这样做:

...
if (!cin.good()) 
{
    cout << "No letters" << endl;
    cin.clear(); // clear error flags
    cin.sync();  // synchronize stream with input source
}
...

不知道怎么做,还是个初学者,他的意思是,当你让cin读取一个整数时,它失败了,它把非整数留在那里,然后继续尝试读取它。您需要让cin读取一些可以成功读取非整数的内容,比如字符串,这样您就可以通过它了。还要注意的是,x是未初始化的。不知道如何初始化,还是一个初学者。他的意思是,当你要求cin读取一个整数时,它失败了,它将非整数留在那里,并继续尝试读取它。您需要让cin读取一些可以成功读取非整数的内容,比如字符串,这样您就可以通过它了。还要注意的是,x是未初始化的。@30trix您还有其他类型的打字错误。可能忘了最后一个大括号?还是完全省略了大括号?@30trix你还有其他类型的打字错误。可能忘了最后一个大括号?还是完全省略大括号?