C++ 我不知道';“我不知道为什么无限循环输出”;错误,请再试一次:";在c++;;

C++ 我不知道';“我不知道为什么无限循环输出”;错误,请再试一次:";在c++;;,c++,iostream,C++,Iostream,我不知道为什么无限循环输出“错误,请再试一次:”; _cin.fail()为零 void demo03(istream&u cin){ int inputNewNumber; 而(!\u cin.fail()){ cout>inputNewNumber; 如果(_cin.fail()){ _cin.clear(); cerr无效字符仍在流中。您需要读取它。例如,您可能希望忽略所有字符,直到行尾。它很混乱。这就是为什么不首选此输入循环样式的原因之一。使用std::getline读取字符串,然后使用

我不知道为什么无限循环输出“错误,请再试一次:”; _cin.fail()为零

void demo03(istream&u cin){
int inputNewNumber;
而(!\u cin.fail()){
cout>inputNewNumber;
如果(_cin.fail()){
_cin.clear();

cerr无效字符仍在流中。您需要读取它。例如,您可能希望忽略所有字符,直到行尾。它很混乱。这就是为什么不首选此输入循环样式的原因之一。使用
std::getline
读取字符串,然后使用
std::istringst对其进行解析通常要干净得多铰
void demo03(istream &_cin){
    int inputNewNumber;
    while (!_cin.fail()) {

        cout << "Please input value: ";
        _cin >> inputNewNumber;
        
        if (_cin.fail()) {
            _cin.clear();
            cerr << "Error,Please try agin: ";
            continue;
        }
        cout << inputNewNumber << endl;
    }
}