随笔-2  评论-1  文章-1  trackbacks-0
re: 重载输入符<< 栗子 2006-06-28 09:00
cin陷入错误后,可以用
cin.clear() 来使cin输入流恢复正确的状态。但是,被存在缓存中的数据还是-1,所以要清空缓存。利用fflush(stdin)(只适用于VC6)。
对于cin>>(int)a, 当你输入的不是整型时,会使cin陷入错误状态,这样以后的cin都不能再读入,一直处于错误状态。
所以在输入前,要检查错误。

cout<<"Input a:"<<endl;
a=getchar();
if(!isdigit(a)){
cerr<<"Error input, once again!";
contiue;
}
fflush(stdin);
cout<<"a:"<<a<<endl;