【问题标题】:Why does it receive only 1 integer? [closed]为什么它只接收 1 个整数? [关闭]
【发布时间】:2018-06-27 00:27:34
【问题描述】:

为什么它只接收一个整数?
这是代码:

#include <iostream>

int main () {
    int num1,num2,num3;
    std::cin>>num1,num2,num3;

    return 0;
}

【问题讨论】:

  • 您应该阅读逗号运算符。你想要std::cin &gt;&gt; num1 &gt;&gt; num2 &gt;&gt; num3
  • 因为这是你要求的。std::cin&gt;&gt;num1&gt;&gt;num2&gt;&gt;num3;
  • 顺便说一句,用-Wall 编译会警告这样的事情。
  • 这个逗号是什么意思?它对 num2,num3 有什么作用?
  • 再次查找“逗号运算符”。

标签: c++ operator-precedence comma-operator


【解决方案1】:

根据Operator Precedencecomma operator的优先级低于operator&gt;&gt;,所以std::cin&gt;&gt;num1,num2,num3;(std::cin&gt;&gt;num1), num2, num3;相同;以下num2, num3 实际上什么也没做。 (更准确地说,std::cin&gt;&gt;num1首先被评估,其结果被丢弃;然后num2被评估,num3被评估,其值为整个逗号表达式的结果。)

你想要的应该是std::cin &gt;&gt; num1 &gt;&gt; num2 &gt;&gt; num3;

【讨论】:

    【解决方案2】:

    这不是正确的语法。这是逗号运算符的应用。你想要的

    std::cin >> num1 >> num2 >> num3; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-17
      • 2021-10-22
      • 2011-05-18
      • 2020-09-30
      • 1970-01-01
      • 2018-11-27
      • 2020-10-01
      相关资源
      最近更新 更多