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