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