奥古斯丁少爷 发表于 2016-3-12 11:45:27

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怎么理解,我不造,其实这些什么状态标记我都不太懂,我自己百度了一下稍微知道了一些。

奥古斯丁少爷 发表于 2016-3-12 18:05:17

好像有点知道了,流状态是不正常时,得恢复流的状态才能继续正常使用吗,cin,clear(),括号里没有参数时是不是默认为cin.clear(ios::goodbit)

奥古斯丁少爷 发表于 2016-3-13 00:32:16

n0noper 发表于 2016-3-14 10:49:12

奥古斯丁少爷 发表于 2016-3-12 18:05
好像有点知道了,流状态是不正常时,得恢复流的状态才能继续正常使用吗,cin,clear(),括号里没有参数时 ...

MSDN对我说:If 0, all error bits are cleared。
“== 0”正好相反,想想:while (1)这个才是一直循环,所以应该是 " ==1" 或者 把!去掉的 == 0;

有问题,多百度!百度找不到,再讨论{:10_250:}
页: [1]
查看完整版本: C++流的状态