【发布时间】:2008-10-01 13:51:35
【问题描述】:
如何使用 ofstream 将文本写入文件末尾而不擦除其内容?
【问题讨论】:
如何使用 ofstream 将文本写入文件末尾而不擦除其内容?
【问题讨论】:
打开文件时可以传递标志ios::app:
ofstream ofs("filename", ios::app);
【讨论】:
您想追加到文件中。创建ofstream时使用ios::app作为文件模式。
追加将自动寻找到文件的末尾。
【讨论】:
使用 ios::app 作为文件模式。
【讨论】:
seekp()函数允许你任意设置文件指针的位置,用于打开的文件。
【讨论】:
正如人们上面提到的,以以下方式打开文件就可以了:
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 个参数的那个。
【讨论】: