【发布时间】:2016-04-14 14:57:57
【问题描述】:
我认为:
if (true)
{execute this statement}
那么if (std::cin >> X) 在没有任何“真”的情况下如何执行为真呢?我可以理解是if ( x <= y) 还是if ( y [operator] x ),但是“istream = true”是什么逻辑。
【问题讨论】:
-
如果“接受”一个布尔值。因此, ( ) 中的任何内容都将通过运算符 bool() 转换为 bool;另见stackoverflow.com/questions/6791520/…
-
如果最后一次操作成功,则流是“true-ish”。
-
你需要问自己的第一个问题是表达式
(std::cin >> X)的值是什么。 -
@Exceptyon 是否意味着任何 iostream 的计算结果都为真?还是只有cin?抱歉这个菜鸟问题
-
如果读取成功,@chaosfirebit 应该返回 true。因此,如果还有要读取的内容,则可以执行转换。诠释 x;辛>>x;将在输入“test”时返回 false
标签: c++ if-statement