【问题标题】:Do input operands return booleans in c++?输入操作数是否在 C++ 中返回布尔值?
【发布时间】:2010-11-14 06:42:56
【问题描述】:

阅读加速的 c++,他们举了一个我不明白的例子。这是一个带有条件(cin>>x)的while循环。在脚本的这一点上,x 已被声明为双精度。我知道只要 x 成功接收输入,循环就会执行,但是 >> 返回一个布尔值?我想我只需要一点帮助来理解它到底是什么 >> 和

【问题讨论】:

  • 你应该把它分成两个问题。问题标题中描述的第一部分是一个问题,但“同时我们正在讨论该主题”之后的所有内容都是一个不同的问题,因此应该是一个不同的问题。

标签: c++ iostream iomanip


【解决方案1】:

其实都是自己返回的,也就是

std::cin >> foo

是一个恰好返回std::cin 的表达式(有副作用)。 iostreams 也可以转换为 bool,如果它们准备好接收输入或提供输出,则它们为 true,如果它们已关闭或在各自文件的末尾,则为 false。

【讨论】:

  • 更准确地说,它们被转换为void*,然后再转换为bool。即使有 is 输入可用,流也可能评估为 false。例如,如果fooint 并且接下来要提取的字符不是数字,那么流将处于fail 状态。拨打clear重置。
猜你喜欢
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多