Я понимаю, что cin.eof ()
проверяет формат потока. И давая ввод, конец символа не достигается, если ввод неверен. Я тестировал это на моем MSV C ++ 2010 и не понимаю странных результатов. Независимо от того, что я ввожу, я получаю сообщение Ошибка формата , которое присутствует в программе.
#include <iostream>
using namespace std;
int main()
{
int i;
cin>> i;
if(!cin.eof())
{
cout<< "\n Format Error \n";
}
else
{
cout<< "\n Correct Input \n";
}
getchar();
return 0;
}
Результаты, которых я ожидал:
Значения для i =
Может ли кто-нибудь объяснить, в чем я ошибаюсь. Спасибо.