我需要编写 C++ 代码来打开一个二进制文件并向其中写入 5 MB 的“1”。
目前我的代码是:
#define BYTES_BUFFER_SIZE_5MB (1024*1024*5)
static char buffer[BYTES_BUFFER_SIZE_5MB];
memset(buffer, 0xff, BYTES_BUFFER_SIZE_5MB);
ofstream myFile ("data.bin", ios::out | ios::binary);
myFile.write(buffer, BYTES_BUFFER_SIZE_5MB);
是否有类似 memset
的方法来写入文件,这样我就可以避免使用缓冲区?
最佳答案
我认为我们可以使用流操纵器在一行中完成此操作:
fout << std::setw(BYTES_BUFFER_SIZE_5MB - 1) << std::setfill(char(0xFF)) << char(0xFF);
这样我们就不需要缓冲区了。唯一的风险是,如果您想写入大量字节,则在调用 setw
时可能会出现 int
溢出的风险。
关于c++ - 将 const 模式写入特定大小的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47311651/