C++逗号与数字的奇怪行为

标签 c++ c++11

我有一个最简单的代码,它必须接受并重新打印两个数字。它适用于我尝试过的任何分隔符号(空格、+ 等),但 (!) 逗号除外。

cout << "Enter x & y coordinates: ";
cin >> x;
cin >> y;
cout << "Coordinates are (" << x << "," << y << ")" << endl;
  • 2 2 个输出 (2,2)
  • 2+2 输出 (2,2)

  • 2.2等待第二个数

但是 2,2 提示输入第二个数字,只输出 (2,0)。 为什么会这样?逗号后面的东西去哪儿了?

最佳答案

It works well for any separating symbol I've tried (space, + ,etc.) except (!) the comma.

事实上,没有。

  • 确实会忽略空格(包括制表符、eol)。
  • 2+2 是 2 个数字:2+2(因为数字可以以 +-)

在其他情况下,std::cin >> y 将失败,并将 cin 设置为错误状态,并将 y 设置为 0。

关于C++逗号与数字的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58395078/

相关文章:

c++ - 旋转一个二维圆函数

c++ - 打印 std::this_thread::get_id() 给出 "thread::id of a non-executing thread"?

C++11 原子和侵入式共享指针引用计数

c++ - 有没有办法在使用 C++11 调用函数期间将 `vector<int>` 自动提升为 `vector<double>`?

C++ 输入文件没有将我的整个文件读回字符串

c++ - MSVC 2015 为 std::vector 选择不正确的构造函数重载

c++ - 将右值引用传递给 const 左值引用参数

c++ - 为什么此合并排序实现无法正常工作?

c++ - 如何从对象调用我的设置回调函数?

c++ - x86 放松排序性能?