Кин, пропуская в то время как - PullRequest
0 голосов
/ 07 октября 2010

Почему мой cin пропускается в следующее время?

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

1 Ответ

3 голосов
/ 07 октября 2010

Ошибки в iostreams липкие. Необходимо очистить состояние ошибки, прежде чем 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;
        }
}
...