Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 正在呼叫接线员>&燃气轮机;在处于失败/错误状态的istream上未定义行为?_C++_Undefined Behavior_Istream_C++ Standard Library - Fatal编程技术网

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;
}