C++流的状态
cout<<"请问一共要输入多少个整形数";int b;
while(!(cin>>b))
{
cin.clear();
cin.ignore(100,'\n');
cout<<"请输入一个合法的值";
}
cin>>b 不正常输入时他的状态标记不是0,所以我把while(!cin>>b)理解为当(!(cin>>b))==0时 执行while里的语句,可不可以,我觉得这句把==0给省略了,加上==0我能好理解一点
还有cin.clear怎么理解,我不造,其实这些什么状态标记我都不太懂,我自己百度了一下稍微知道了一些。 好像有点知道了,流状态是不正常时,得恢复流的状态才能继续正常使用吗,cin,clear(),括号里没有参数时是不是默认为cin.clear(ios::goodbit) 顶 奥古斯丁少爷 发表于 2016-3-12 18:05
好像有点知道了,流状态是不正常时,得恢复流的状态才能继续正常使用吗,cin,clear(),括号里没有参数时 ...
MSDN对我说:If 0, all error bits are cleared。
“== 0”正好相反,想想:while (1)这个才是一直循环,所以应该是 " ==1" 或者 把!去掉的 == 0;
有问题,多百度!百度找不到,再讨论{:10_250:}
页:
[1]