我需要将一个文件拆分为多个文件而不进行压缩。我在cpp参考上找到了这个

#include <fstream>
using namespace std;

int main () {

char * buffer;
long size;

ifstream infile ("test.txt",ifstream::binary);
ofstream outfile ("new.txt",ofstream::binary);

// get size of file
infile.seekg(0,ifstream::end);
size=infile.tellg();
infile.seekg(0);

// allocate memory for file content
buffer = new char [size];

// read content of infile
infile.read (buffer,size);

// write to outfile
outfile.write (buffer,size);

// release dynamically-allocated memory
delete[] buffer;

outfile.close();
infile.close();
return 0;
}

我想这样做但是问题是..我只能创建第一个文件,因为我只能从文件的开头读取数据。可以这样做吗,如果没有,那么分割这些文件的最佳方法是什么。

最佳答案

您可以将流搜索到所需位置,然后读取流。检查这段代码。

// get size of file
infile.seekg(0,ifstream::end);
size=infile.tellg();
infile.seekg(0);

您需要做的只是记住停止读取infile,关闭outfile,打开新outfile,重新分配缓冲区以及将infile读取到缓冲区并写入第二个outfile的位置。

关于c++ - 在C++中分割文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9227902/

10-15 06:41