写出vc处理cin.fail()的结果

kiffa 2009-05-24 03:19:25
用vc测试以下代码,写出编译器版本和结果,就给分。

int main()
{
cin.setstate(istream::badbit);

cout << (cin.rdstate() & istream::failbit) << endl;

if (cin.fail())
cout << "fail" << endl;
else
cout << "not fail" << endl;
}
...全文
450 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzh9955 2009-05-25
  • 打赏
  • 举报
回复
NB
visly 2009-05-25
  • 打赏
  • 举报
回复
0
fail
Press any key to continue ...
vc6.0
taodm 2009-05-24
  • 打赏
  • 举报
回复
兄弟,去下本《c++标准输入输出流与本地化》认真研究吧。问题恐怕完全不象你这么瞎折腾能得到答案的。
lin12345 2009-05-24
  • 打赏
  • 举报
回复
上面都有了,就帮顶吧
leo315 2009-05-24
  • 打赏
  • 举报
回复
都侧过了,帮顶!
光宇广贞 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 liliangbao 的回复:]
引用 12 楼 hikaliv 的回复:
引用 11 楼 lingyin55 的回复:
一般就用vs2008,其余很少用。

ps:上5000了,等你的散分帖呢

引用 9 楼 hikaliv 的回复:
lingyin55 同学用的环境好多啊。


没有话题……有的话就散了。分倒是准备好了。你找一个话题。再说,你每次去,纯灌水啊……就不能参与一下讨论吗?上次我给你的也算多了,下次纯灌的话,可就一分打发了了事儿……

散分不用非得有话题,我也等着接分~
[/Quote]

你们都……你们都……你们都……
liliangbao 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hikaliv 的回复:]
引用 11 楼 lingyin55 的回复:
一般就用vs2008,其余很少用。

ps:上5000了,等你的散分帖呢

引用 9 楼 hikaliv 的回复:
lingyin55 同学用的环境好多啊。


没有话题……有的话就散了。分倒是准备好了。你找一个话题。再说,你每次去,纯灌水啊……就不能参与一下讨论吗?上次我给你的也算多了,下次纯灌的话,可就一分打发了了事儿……
[/Quote]
散分不用非得有话题,我也等着接分~
goodname 2009-05-24
  • 打赏
  • 举报
回复
楼主真是大好人呀,俺来晚了。
俺也是vs2008,结果跟大家一样,就不贴了。
  • 打赏
  • 举报
回复
0
fail
Press any key to continue

Vc6


愉快的接分。。
光宇广贞 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lingyin55 的回复:]
一般就用vs2008,其余很少用。

ps:上5000了,等你的散分帖呢

引用 9 楼 hikaliv 的回复:
lingyin55 同学用的环境好多啊。
[/Quote]

没有话题……有的话就散了。分倒是准备好了。你找一个话题。再说,你每次去,纯灌水啊……就不能参与一下讨论吗?上次我给你的也算多了,下次纯灌的话,可就一分打发了了事儿……
lingyin55 2009-05-24
  • 打赏
  • 举报
回复
一般就用vs2008,其余很少用。

ps:上5000了,等你的散分帖呢

[Quote=引用 9 楼 hikaliv 的回复:]
lingyin55 同学用的环境好多啊。
[/Quote]
kiffa 2009-05-24
  • 打赏
  • 举报
回复
果然vc也是用this->rdstate() & ( badbit | failbit ) 来实现fail()的。

而不是 this->rdstate() & failbit

只要failbit或者badbit之一被设置了,fail()就返回ture,而不是单单和failbit有关。

这么说来msdn所描述的有误:

basic_ios::fail

Indicates the status of rdstate & failbit.

bool fail( ) const;

Return Value

1 or true if rdstate & failbit is nonzero, otherwise 0 or false.


准备给分了,把上面代码里的cin.fail()改成cin.basic_ios<char>::fail(),然后再试试看,看结果如何。

光宇广贞 2009-05-24
  • 打赏
  • 举报
回复
lingyin55 同学用的环境好多啊。
lsldd 2009-05-24
  • 打赏
  • 举报
回复
0
fail
Press any key to continue

vc6
光宇广贞 2009-05-24
  • 打赏
  • 举报
回复
0
fail


环境是vs2008

重申一下
WOBUGUAN 2009-05-24
  • 打赏
  • 举报
回复
加油!加油!
lingyin55 2009-05-24
  • 打赏
  • 举报
回复
0
fail
Press any key to continue

vc6
lingyin55 2009-05-24
  • 打赏
  • 举报
回复
0
fail

dev c4.9.8.0
lingyin55 2009-05-24
  • 打赏
  • 举报
回复
0
fail
请按任意键继续. . .

cfree 4.1
lingyin55 2009-05-24
  • 打赏
  • 举报
回复
0
fail
请按任意键继续. . .

vs2008
加载更多回复(1)

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧