关于使用fstream读取2进制文件的问题!
我使用fstream读取2进制文件,发现当文件中包含了0x1A字符的时候,fstream将无法继续读取了,代码如下:
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int main()
{
fstream f("C:\\a.stg");
if (f.is_open())
{
f.seekg(0L, ios::end);
int len = f.tellp();
char c;
f.seekg(0L, ios::beg);
for(int i = 0; i < len; i++)
{
f.read(&c, 1);
printf("%X", c);
}
}
return 0;
}
a.stg文件的字节大概是这样排列的,你只需要新建一个这个文件,把这些字节填充进去,就可以发现问题了!还有就是,哪里有详细讲解如何使用fstream的文章或者书籍?谢谢!
D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 00 03 00 FE FF 09 00