样例代码:
在特定实现中,出现以下行为:
这种行为是否正确? 如果不正确,根据C++标准应该是什么正确的行为?
我想起之前在SO上讨论过所有情况都应该写
示例代码:
#include <iostream>
int main()
{
int x = 5;
std::cin >> x;
std::cout << x << '\n';
}
在特定实现中,出现以下行为:
- 输入:
6
;输出:6
- 输入:
a
;输出:0
- 输入:(文件结尾);输出:
5
- 输入:(空格后跟文件结尾);输出:
5
cin >> x
会将x
赋值为0
;但如果失败是因为文件结束,则不会将其赋值为0
。这种行为是否正确? 如果不正确,根据C++标准应该是什么正确的行为?
我想起之前在SO上讨论过所有情况都应该写
0
,因为从C++11开始,但使用搜索功能找不到任何东西;而且C++标准的iostreams部分相当深奥。