Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ istream::读取而不是读取整个文件_C++_File - Fatal编程技术网

C++ istream::读取而不是读取整个文件

C++ istream::读取而不是读取整个文件,c++,file,C++,File,我正在练习文件读取,这就是为什么我制作了这个“十六进制编辑器”,它使用读取函数在内存中复制文件 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(); 您忘了先搜索到末尾?执行tellg()时,文件指针在什么

我正在练习文件读取,这就是为什么我制作了这个“十六进制编辑器”,它使用读取函数在内存中复制文件

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();

您忘了先搜索到末尾?执行
tellg()
时,文件指针在什么位置?它设置在文件的末尾。使用ifstream定义编辑。我还做了一些测试,似乎失败位是在读取之后设置的。进一步的测试表明,当read函数在我的文件中发现一个十六进制值时,它会停止复制到内存中。
ifstream iFile(argv[1],ios::ate, ios::binary);
//should be
ifstream iFile(argv[1],ios::ate | ios::binary);