cin在跳过的同时

时间:2010-10-07 06:39:26

标签: c++ while-loop iostream

为什么我的cin在以下时间被跳过?

int main() {
        int option;
        cin >> option;
        while(!cin.good()) {
                cout << "Looping" << endl;
                cin >> option;
        }
}

1 个答案:

答案 0 :(得分:3)

iostream中的错误很棘手。您需要在cin再次工作之前清除错误状态。

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;
        }
}