为什么我的cin在以下时间被跳过?
int main() {
int option;
cin >> option;
while(!cin.good()) {
cout << "Looping" << endl;
cin >> option;
}
}
答案 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;
}
}