编写文本文件c ++的有效方法

时间:2013-11-23 17:02:25

标签: c++

我正在尝试用最少的时间来编写大文本文件。首先,我必须初始化一个空格的文件。我的方法是创建一个250字节的char数组,然后将其复制到文件中。我认为这不是很有效的方法。还有更好的主意吗?

char buff[250];
ofstream ofile;
ofile.open("abc.txt");
for(long int i=0;i<20970;i++)
{
  ofile<<buffer;
  ofile<<endl;
 }

2 个答案:

答案 0 :(得分:1)

在Windows中,您可以使用SetEndOfFile创建指定大小的文件。在Linux中它是ftruncate

还要确保在写入时优化缓冲区大小。最佳缓冲区大小取决于系统内部,例如页面大小。但在大多数情况下(如果它不是嵌入式系统),4-128kb是一个很好的大小。

答案 1 :(得分:1)

您可以搜索文件的末尾并写一个字符:

#include <fstream>

using namespace std;

int main(int argc,char** argv) {
    ofstream o("file") ;
    o.seekp(100 * 1024 * 1024);
    o << '\0';

    return 0;
}

仅在事先知道结果文件的大小时才有效。