n:
std::cin>>i;
if (std::cin.fail())
{
std::cin.clear();
goto n;
}
Зависание ввода
При вводе других символов повторить ввод.
-язык с++
второй и последущие разы ввод игнорируется. получается безконечный цикл.
Код:
Цитата: bolt90
второй и последущие разы ввод игнорируется. получается безконечный цикл.
Уже обсуждалось 1 миллион и ещё один раз.
Смотри документацию, что делает clear.
Ищи по форуму ответ. Например по ключевой фразе flush.
может еще кому-то пригодится
Код:
#include <iostream>
using namespace std;
void main()
{
int c;
while(!(cin >> c)){
cin.clear();
cin.ignore(80, '\n');
}
system("PAUSE");
return 0;
}
using namespace std;
void main()
{
int c;
while(!(cin >> c)){
cin.clear();
cin.ignore(80, '\n');
}
system("PAUSE");
return 0;
}
Ужас, не говоря уже о дикости типа: system("PAUSE");
Цитата: bolt90
Код:
system("PAUSE");
Спасибо, поржал :D