鱼C论坛

 找回密码
 立即注册
查看: 2211|回复: 3

C++流的状态

[复制链接]
发表于 2016-3-12 11:45:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
       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怎么理解,我不造,其实这些什么状态标记我都不太懂,我自己百度了一下稍微知道了一些。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-3-12 18:05:17 | 显示全部楼层
好像有点知道了,流状态是不正常时,得恢复流的状态才能继续正常使用吗,cin,clear(),括号里没有参数时是不是默认为cin.clear(ios::goodbit)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-13 00:32:16 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;

有问题,多百度!百度找不到,再讨论
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 11:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表