请教怎样实现一次I/O写多行文本到文本文件?谢谢
原帖如下
http://bbs.csdn.net/topics/390583874
读取foxpro的DBF文件,我希望攒够2000行(也就是2000条记录)
先在内存里保存,当积累到2000条记录的时候,才写一次文件,也就是每次写2000行
然后清掉buffer里的2000行,再次积累到2000行的时候,写一次文件
最后一次写文件,可能不是2000行,比如一个DBF文件有5000行,会写3次,2000,2000,1000
类似于java的bufferwriter,不知道C++怎么实现?
谢谢
[解决办法]
1、用malloc/free管理你的buffer;
2、用fopen/fclose/fread/fwrite操作文件;
3、其中fwrite可以一次性把buffer中的数据写入文件。
std::string buffer;
std::ifstream infile("eee.dbf");
size_t lines = 0;
while(std::getline(infile, buffer)){
++lines;
if(lines == 2000){
break;
}
}
std::ofstream outfile;
outfile.write(buffer.c_str(), buffer.size();