C++读取和写入文件会导致垃圾
C++ reading and writing a file results in garbage
我只是试图将一个小的 1KB 二进制文件读入缓冲区,然后将缓冲区写回磁盘。似乎对于某些文件的输出文件与输入文件完全不同,我做错了什么?谢谢。
std::ifstream myfile;
myfile.open (testinput.rar);
myfile.seekg (0, myfile.end);
filesize = myfile.tellg();
myfile.seekg (0, myfile.beg);
char *mybuffer= new char[filesize];
myfile.read(mybuffer,filesize);
myfile.close();
ofstream myfile3;
myfile3.open ("testoutput.rar");
for(unsigned int i=0; i<filesize; i++)
myfile3 << mybuffer[i];
myfile3.close();
您必须以二进制形式打开文件。
myfile.open ("testinput.rar", std::ios::binary);
myfile3
应该以二进制模式打开:
myfile3.open("testoutput.rar", ios::out | ios::binary);
此外,您可能需要考虑使用 write()
来修改文件:
myfile3.write(mybuffer[i], sizeOfBuffer);
相关文章:
- 正在将csv文件读取为双精度矢量
- 将从格式化文本文件读取的文本数据存储到链表
- C++ 读取文件读取文件不正确
- 使用对象文件读取三角形数据网格
- 如何减慢从 BVH 文件读取的 opengl 动画?
- 从文件读取,并写入函数C++中的数组
- 从对象C++中的文件读取内容时出现分段错误
- 从文件读取并通过矢量输出到控制台
- 尝试将字符串从文件读取到无符号字符向量中
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 简化文件读取的函数
- 如何将逗号分隔的文件读取为 2D int 数组?
- 在 c++ 中将数据从文件读取到队列中
- 'std::wstring_convert'尽可能多地转换(从 UTF8 文件读取块)
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 文件读取C++包括空格键
- 从文件读取时未将值推回矢量
- 从文件 C++ 读取时的无限循环
- 从同一文件读取和写入?
- 从.txt文件读取到C++中的双精度向量