【发布时间】:2017-07-19 18:24:48
【问题描述】:
我得到了一个对我来说似乎多余的代码:
char c;
cin>>c;
if(cin&&c=='n')
//do something
我不明白在 if 中引入 cin 的价值,它是否总是会有 TRUE 值,因为我从未遇到过任何情况(在我有限的经验)没有构造这个 istream 对象。
同样,我也看到了这个:
if(cin)
请纠正我哪里出错了。现在人们不会发布我已经知道的错误流部分,主要部分是除了失败之外,流何时失败 ios_base::Init
【问题讨论】:
-
@MooingDuck 那么流什么时候会遇到一些错误:你能给我一些例子,链接吗?
-
Gurav
int x, cin >> x;用户输入“FUBAR!”,无法转换为int。char有点困难。 -
@user4581301 如果没有什么可输入的,只是简单的 cin -> 我已经编辑了问题,请看一下。
-
@Gaurav
cin在“未构造时”不处于错误状态。当它在提取数据时遇到错误时,它处于错误状态。在你的 sn-p 中它如何失败的一个例子是如果它遇到文件结尾,例如如果你的程序的输入是从一个文件或从另一个已结束的程序传输的。