std::cin 错误状态和变量更改
std::cin error state and variable changing
我认为,如果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
我去哪儿了哦,这么错了?
行为在 C++11 中发生了变化。失败的整数提取现在将变量设置为 0。
即使没有-std=c++11
标志,GCC 4.8 也表现出新的行为,这可能是库的错误/限制。只有一个libstdc++,它不知道使用哪些编译器标志来编译main
。
相关文章:
- GCC9是否允许避免std::变量的无值状态
- 通过require在不同的Lua状态之间共享全局变量
- 成员变量未保持初始化状态
- 线路抑制状态错误 C4703 可能未初始化的局部指针变量"back"已使用
- 如何在单例类中管理变量状态?
- 将来自类的特定实例的函数分配给变量以保持状态
- C++ 混淆了状态变量行为
- 如何在 Tensorflow C++ 中定义变量的自定义有状态 Op 保存值
- 存储在全局变量中的函数指针在进入函数时设置为 0,并在退出函数时返回到以前的状态
- Qt:更改用户变量表示控件状态的更改
- 循环:在构造函数中使用中断或状态变量
- std::cin 错误状态和变量更改
- C++在保存受用户输入影响的变量的状态时使用临时变量或类变量
- 使用JNI时出现实例和类变量状态问题
- 状态功能.如何通过变量给出参数
- 类成员变量未保存状态
- 变量不会在重载构造函数C++后保持声明状态
- 浮点变量在开关状态内不起作用
- 通过静态变量从本机代码访问有状态托管对象
- C++编译时状态变量