使用c++覆盖文件中的文本

overwrite a text in a file using c++

本文关键字:文本 文件 c++ 覆盖 使用      更新时间:2023-10-16

我对以下代码有问题:

     fstream s("tst.txt" , fstream::binary);
     s.seekp(5, fstream::beg);
     s.write("testing", 7);

它应该保持文件中前五个字符的原样,但它没有!它会丢弃整个旧数据,我必须保留旧数据并只覆盖一块文件数据,而且它应该是二进制模式有人帮忙吗?提前谢谢。

试试这个:

fstream s("tst.txt" , fstream::binary | fstream::in | fstream::out);
s.seekp(5, std::fstream::beg);
s.write("testing", 7);

通过指定openmode标志,您可以在fstream构造函数调用中覆盖默认的openmode。