使用 ofstream 将文本写入文件末尾

Posted

技术标签:

【中文标题】使用 ofstream 将文本写入文件末尾【英文标题】:Using ofstream to write text to the end of a file 【发布时间】:2008-10-01 13:51:35 【问题描述】:

如何而不擦除其内容?

【问题讨论】:

【参考方案1】:

打开文件时可以传递标志ios::app

ofstream ofs("filename", ios::app);

【讨论】:

【参考方案2】:

您想追加到文件中。创建ofstream时使用ios::app作为文件模式。

追加将自动寻找到文件的末尾。

【讨论】:

【参考方案3】:

使用 ios::app 作为文件模式。

【讨论】:

【参考方案4】:

seekp()函数允许你任意设置文件指针的位置,用于打开的文件。

【讨论】:

【参考方案5】:

正如人们上面提到的,以以下方式打开文件就可以了:

ofstream out("path_to_file",ios::app);

如果您想在默认情况下将数据附加到文件中,它就可以解决问题。

但是,如果你想去到文件的末尾,在程序的中间,默认模式不是ios::app,你可以使用下面的语句:

out.seekp(0,ios::end) 这会将放置指针从文件末尾放置 0 个字节。 http://www.cplusplus.com/reference/ostream/ostream/seekp

确保使用正确的 seekp(),​​因为 seekp() 有 2 个重载。在这种情况下,首选具有 2 个参数的那个。

【讨论】:

以上是关于使用 ofstream 将文本写入文件末尾的主要内容,如果未能解决你的问题,请参考以下文章

使用 ofstream 将数据写入其文件后更新 ifstream 对象

C++之文件的读取和写入操作(文本文件和二进制文件)

使用 ofstream 写入 txt 文件时强制编码

std::ofstream,写入前检查文件是不是存在

std::ofstream,写入前检查文件是不是存在

如何将 ASCII 字符的十六进制值写入文本文件?