c++以输出方式打开文件时怎么做到既不删除原文件内容又能使用seekp

2025-04-05 10:39:06
推荐回答(2个)
回答1:

用app的话,seekp方法会失效。在MSDN里搜索“openmode method”你可以查到:

app, to seek to the end of a stream before each insertion.

也就说以app方式打开文件的时候,每次插入前,文件指针会自动移动到末尾,seekp方法无效。


要想达到你说的目的,用ofstream是不行的。必须用fstream,同时以in和out的方式打开。

如下代码。

#include
#include
using namespace std;


void main(void)
{
    fstream fsout;
    fsout.open("abc.txt", ios::in | ios::out);

    fsout.seekp(9, ios_base::beg);
    fsout<<"hello";

    fsout.close();
}

回答2:

输出的文件好像一直不能是用seekp,seekg函数吧。你再仔细看看书