如果 ifstream 在第一次测试 while 时为空,则出错
Error if ifstream is empty on first test of while
我有一个打开的输入文件f
,其中包含整数,我有一个整数变量i
。
我愿意:
cout << "going in, ";
while(f >> i){
cout << "made it in, ";
//do stuff
}
cout << "and out." << endl;
如果f
为空,则输出不是仅使条件失败并继续,而是:
going in, Segmentation fault: 11
为什么这种测试尝试如此不优雅地失败,并且只有在第一次失败时才失败?如果f
有一个或多个整数,它将按预期和预期工作。
我的建议是:
while( f>>i, !f.bad() )
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 访问者访问变体并返回不同类型时出错
- 在Linux for Windows上编译C++代码时出错
- 读取文件的最后一行并输入到链接列表时出错
- 重载操作程序时出错>>用于类中的字符串 memebr
- 调用专用模板时出错"no matching function for call to [...]"
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- while循环中while循环的时间复杂度是多少
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 在Google Kick start中提交时出错
- 在c++中访问int到类对象的映射时出错
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 擦除while循环中迭代的元素
- 分段错误当我试图运行程序时出错
- 使用dynamic_cast和构造函数时出错
- 在C++中调用while循环内的函数时出错
- 如果 ifstream 在第一次测试 while 时为空,则出错
- while循环中出错