Как правильно использовать iostream cin? - PullRequest
1 голос
/ 15 апреля 2011

Поначалу это может показаться странным вопросом, но когда делается запрос cin, если он получает неправильный тип, он все равно продолжается, но статус cin меняется.

Как мнецикл, пока cin не будет в порядке, например, когда я спрашиваю число, он «принимает» строку, если дополнительный код не указан, например, цикл?

Наконец, когда я использую cin несколько раз подряд, он делает первый cin, как ожидалось, но затем пропускает остальные;Как это исправить?Если вам нужна дополнительная информация, просто спросите в комментарии.

// Example
cout << "Enter a number: ";
cin >> num; // A string is given

cout << "Enter another number: ";
cin >> num2;

В приведенном выше примере строка будет принята, и второй cin, скорее всего, по какой-то причине пропустит.Некоторое время назад я нашел ответ на этот вопрос, но потерял фрагмент цикла, который использовал так: /

1 Ответ

2 голосов
/ 15 апреля 2011

пример:

int value;
while(!(cin >> value))
{
    cin.clear();
    cin.ignore();  // eat one character
}

while(!(cin >> value))
{
    cin.clear();
    cin.ignore(10000,'\n');  // eat the rest of the line
}
...