C ++多次将文本写入文件

时间:2013-04-21 02:55:34

标签: c++ storage

我有一个Qt C ++程序,可以循环处理一些数据。

它将每个数据处理结果附加到文本文件的末尾。数据处理操作放在一个循环中,因此程序可以在几秒钟内产生800多个结果,并逐个写入(即分开)。

我认为I / O操作对于计算机的硬盘驱动器来说并不是很好,所以我组织了一个存储数据处理结果的数组,当数组长度超过200时,程序会将其附加到文件并清理,数组再次超过200,依此类推。

但我不确切知道 - 是否真的需要?也许只是浪费RAM 而且我应该将数据附加到没有那些数组(缓冲区)的文本文件中?毕竟,程序会以相同的方式写入相同数量的数据。

1 个答案:

答案 0 :(得分:1)

一般来说,由于c ++机制提供了缓冲的io,您可以根据需要进行更改。在您的上下文中,您引用的“800结果”并未说明输出数据的确切大小。所以你可能会过度训练。 F.Y.I,函数ios :: rdbuf()将获得一个指向streambuf对象的指针,该对象表示流的内部缓冲区。然后,您可以调用streambuf :: pubsetbuf(char * s,streamsize n)来设置具有给定大小的新内部缓冲区。您还可以从http://en.cppreference.com/w/cpp/io/basic_ios/rdbuf找到详细信息。