【发布时间】:2014-01-19 14:09:15
【问题描述】:
我认为,如果cin 进入错误状态,它流入的变量保持不变。但是,以下似乎是一个反例:
#include <iostream>
using namespace std;
int main()
{
cout << "Enter int: ";
int i = 5;
cin >> i;
if(cin.fail()) cout << "failed \n";
cout << "You entered: " << i << "\n";
}
跑步:
Enter int: g
failed
You entered: 0
我哪里错了?
【问题讨论】:
-
这段代码对我来说工作得很好......输出为5! (MSVC)
-
i 的数据类型是 int;你在输出时给出了一个 char 值..
-
AFAIK 这属于未定义行为的范畴。