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用作您的变量(您将打印未初始化的变量)。