【问题标题】:How can Cin be used in an if statement? [duplicate]如何在 if 语句中使用 Cin? [复制]
【发布时间】:2020-02-07 07:47:06
【问题描述】:

我很难理解这个问题:

谁能告诉我这是做什么的? (ps:这是我编码的第三天,我很想了解这个例子)

if (std::cin >> currVal){
while (std::cin >> val){

【问题讨论】:

  • 我正在学习一本初学者的教科书,这是他们的一个例子。我试着阅读他们的解释,但我不太明白。
  • 我在教科书中添加了示例的图像。从我所学到的 cin >> 是一种让用户输入内容的方法。我不明白如何在 if 语句或 while 循环中使用它。因为对于 if 和 while 循环,它们需要像 =! 这样的比较!或 >= 或 ==。
  • @ThomasSablik 我读过,但还是不太明白。
  • 我已经为副本添加了更详细的答案,希望对您有所帮助:stackoverflow.com/questions/6791520/…

标签: c++ if-statement while-loop cin


【解决方案1】:

几乎是这样:将number 的值输入Cin。这是C的输入流。如果number 不是数字,则此if 条件将失败,并将评估为假。

您的语法不正确。你的意思是if ( cin >> number)

在 cmets 中,出现了一个关于字符串的问题:

每个输入都是一个字符串。如果要检查输入的字符串是否为数字,只需将其转换为数字即可。您必须输入一个字符串,然后使用例如转换它。逛街

另一种方法是检查从 cin 读取是否失败,但我通常不使用这种方法,因为 cin.fail() 涵盖的错误情况不仅仅是类型转换失败。

你可以在这里阅读更多关于cin here的信息

【讨论】:

  • 如果number 是一个字符串呢?答案并不完整。您没有回答为什么可以使用它。你只回答了会发生什么。
  • @ThomasSablik 先生,你去吧。
  • 现在更糟了。输入流如何返回不是字符串的东西?您至少应该提及operator>> 的返回类型、故障位以及如何将流转换为布尔值。
  • @walnut 有点像 - This if-condition will fail if number is not a number and will evaluate to false.
  • 问题是为什么你可以在 if 条件中使用操作符
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-26
  • 2017-08-10
  • 1970-01-01
  • 2018-06-29
  • 2018-12-06
  • 1970-01-01
  • 2016-08-17
相关资源
最近更新 更多