我遇到了c ++(11)输入流的问题,特别是文件流。用这个打开一个新流后:
ifstream stream;
stream.open("C:\somefile.txt");
当我尝试从它读取并且读取操作遇到并且EOM字节(0x19)时,流被设置为badbit,这不是我想要的。我想阅读直到文件的definit结束。这是我读的方式
char buffer[8];
stream.read(buffer, 8);
然后我这样检查:
if(stream.fail()) return -1;
如何在不停止EOM字节(或等于)的情况下从流中读取?
答案 0 :(得分:2)
以二进制流的形式打开文件:
ifstream stream{ "C:\\somefile.txt", std::ios::binary };
这会导致流在读取时忽略单个字节的值(并简单地读取为块)。