istream ::读取不读取整个文件

时间:2013-02-23 00:42:17

标签: c++ file

我正在练习文件阅读,这就是我制作这个'Hex editor'的原因,它使用read函数将文件复制到内存中。

ifstream iFile(argv[1],ios::ate, ios::binary);

int sizea=iFile.tellg();
char* file=new char[sizea];

iFile.seekg(0);
iFile.read(file,sizea);

cout << iFile.gcount();

因此,对于我的testfile,sizea设置为2378,分配了内存中2378字节的正确块,但gcount()函数返回389.实际上,内存填充到第389字节并且信息正确,它是在第2378字节之前充满了CD。

读取功能是否具有某些内部限制?我无法看到我在这里做错了什么。

好的,发现问题:

ifstream iFile(argv[1],ios::ate, ios::binary);
//should be
ifstream iFile(argv[1],ios::ate | ios::binary);

0 个答案:

没有答案