Здравствуйте.
Не подскажете, почему failbit не сбрасывается? Вот пример кода:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int ival;
while (cin >> ival, !cin.eof())
{
if (cin.bad())
throw runtime_error("istream corrupted.");
if (cin.fail())
{
cout << "wrong data. enter again\n";
cin.clear(istream::failbit);
continue;
}
cout << "Your number is: " << ival << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Если вводишь не число, а например слово (букву), то выставляется failbit, а вот сбрасываться он
никак не хочет. Что я делаю не так? Вроде всё верно. Проверялось на MS VStudio Express 2005.
Заранее спасибо.