提问人:Omar 提问时间:10/23/2023 最后编辑:Łukasz ŚlusarczykOmar 更新时间:10/25/2023 访问量:14
读取输入文件和输出与我预期不符
Reading an input file and the output is not as I expected
问:
我的文件包含“abcdefg”。 为什么当我在控制台中使用这部分代码时,它会打印字母“g”?
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main () {
char ch;
fstream file;
file.open("myfile.txt", ios::in);
file.setf(ios::skipws);
while (1) {
file >> ch;
if (file.fail()) break;
cout << ch;
cout << "\n";
}
file.close();
return 0;
}
我希望输出除字母“g”之外的所有字符。
答:
0赞
Łukasz Ślusarczyk
10/24/2023
#1
对我来说,它给出了所有字母输出。没关系,因为当它读取最后一个字母“g”时,流仍然没有处于失败状态,因此打印了“g”。当您尝试读取某些内容但无法读取某些内容时,Stream 进入失败状态(读取“g”后面的内容)。参见 fstream::fail() 文档和设置 failbit 时的规范。
评论