从文件中读取和写入字节(c ++)

jma*_*erx 6 c++ file-io

我想我可能不得不使用fstream对象,但我不确定如何.基本上我想将文件读入字节缓冲区,修改它,然后将这些字节重写为文件.所以我只需要知道如何进行字节i/o.

Cra*_*aig 7

#include <fstream>

ifstream fileBuffer("input file path", ios::in|ios::binary);
ofstream outputBuffer("output file path", ios::out|ios::binary);
char input[1024];
char output[1024];

if (fileBuffer.is_open())
{
    fileBuffer.seekg(0, ios::beg);
    fileBuffer.getline(input, 1024);
}

// Modify output here.

outputBuffer.write(output, sizeof(output));

outputBuffer.close();
fileBuffer.close();
Run Code Online (Sandbox Code Playgroud)

从记忆中我认为这是怎么回事.

  • 使用new后仍需要删除m_content.C++没有垃圾收集.另外1024字节应该很容易适合堆栈,所以只需使用`char m_content [1024];` (4认同)
  • 很确定这应该改为`fileBuffer.read(input,1024);`.在我的情况下,我正在阅读带有回车符和换行符的文本文件,但我希望它被视为二进制文件,并且`getline`拒绝读取换行符. (3认同)