使用<fstream>库更新文件(仅覆盖特定部分)</fstream>

时间:2011-09-28 21:51:55

标签: c++ file fstream overwrite

我想询问是否有任何方法可以更新说明内容为“ooooo”的文本文件 “ooXXo”使用fstream库。我知道cstdio有一种方法但我不想使用那个因为不支持的异常处理...而且,我不想将文件读取到内存,更新我想要的部分然后写入所有内容一个干净的文件...基本上我正在寻找一种方法来使用fstream:

/* fseek example */
#include <stdio.h>

int main ()
{
  FILE * pFile;
  pFile = fopen ( "example.txt" , "w" );
  fputs ( "This is an apple." , pFile );
  fseek ( pFile , 9 , SEEK_SET );
  fputs ( " sam" , pFile );
  fclose ( pFile );
  return 0;
}

2 个答案:

答案 0 :(得分:3)

#include <fstream>

int main()
{
    std::ofstream os("example.txt");
    os<<"This is an apple.";
    os.seekp(9);
    os<<" sam";
    return 0;
}

答案 1 :(得分:2)

#include <fstream>

int main (){
  std::fstream pFile("example.txt");
  pFile << "This is an apple.";
  pFile.seekp(9);
  pFile << "sam";
  pFile.close();
  return 0;
}

默认情况下,fstream会打开文件进行读写。第二个参数在构造函数中使用默认值来控制该行为。