C++ 正在呼叫接线员>&燃气轮机;在处于失败/错误状态的istream上未定义行为?
假设行C++ 正在呼叫接线员>&燃气轮机;在处于失败/错误状态的istream上未定义行为?,c++,undefined-behavior,istream,c++-standard-library,C++,Undefined Behavior,Istream,C++ Standard Library,假设行istr>>a设置流的failbit或errorbit。随后调用istr>>b是否定义了行为?是的,定义很好。格式化输入的第一阶段是构造一个sentry对象,它检查流的状态。如果状态不好,则提取不起任何作用 之后使用b的值将是未定义的行为,因为它仍然是未初始化的 int main() { std::ifstream istr( "foo.txt" ); int a, b; istr >> a; istr >> b; }
istr>>a
设置流的failbit或errorbit。随后调用istr>>b
是否定义了行为?是的,定义很好。格式化输入的第一阶段是构造一个sentry
对象,它检查流的状态。如果状态不好,则提取不起任何作用
之后使用b
的值将是未定义的行为,因为它仍然是未初始化的
int main()
{
std::ifstream istr( "foo.txt" );
int a, b;
istr >> a;
istr >> b;
}