C++ C++;用数字表示奇怪的行为

C++ C++;用数字表示奇怪的行为,c++,c++11,C++,C++11,我有一个最简单的可能的代码,它必须接受和重印两个数字。它适用于我尝试过的任何分隔符号(空格、+,等等),除了(!)逗号 cout << "Enter x & y coordinates: "; cin >> x; cin >> y; cout << "Coordinates are (" << x << "," << y << ")" << endl; cout>x; cin>>

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

cout << "Enter x & y coordinates: ";
cin >> x;
cin >> y;
cout << "Coordinates are (" << x << "," << y << ")" << endl;
cout>x;
cin>>y;
库特
它适用于我尝试过的任何分隔符号(空格、+,等等),除了(!)逗号

cout << "Enter x & y coordinates: ";
cin >> x;
cin >> y;
cout << "Coordinates are (" << x << "," << y << ")" << endl;
事实上,没有

  • 空格(包括制表符、下线)确实被忽略
  • 2+2
    是两个数字:
    2
    +2
    (数字可以以
    +
    -
    开头)
在其他情况下,
std::cin>>y
将失败,并将
cin
设置为错误状态,并将y设置为0

它适用于我尝试过的任何分隔符号(空格、+,等等),除了(!)逗号

cout << "Enter x & y coordinates: ";
cin >> x;
cin >> y;
cout << "Coordinates are (" << x << "," << y << ")" << endl;
事实上,没有

  • 空格(包括制表符、下线)确实被忽略
  • 2+2
    是两个数字:
    2
    +2
    (数字可以以
    +
    -
    开头)

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

x
y
的类型是什么?@Quentin我的错误都是双重的。
x
y
的类型是什么?@Quentin我的错误,两者都是双的,所以将输入目标设置为0是处理输入错误的C++方式吗?听起来不方便:/n不,您必须测试
std::cin
是否有错误。设置为0避免UB在使用时出错(您将打印未初始化变量)。因此,将输入目标设置为0是处理输入错误的C++方式吗?听起来不方便:/n不,您必须测试
std::cin
是否有错误。设置为0以避免在错误情况下将UB用作您的变量(您将打印未初始化的变量)。