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

标签 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;
}

最佳答案

#include <fstream>

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

关于c++ - 使用 <fstream> 库更新文件(仅覆盖特定部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590065/

相关文章:

c++ - MPI发送和接收的通信成本

c++ - 在 C++ 中跨多个文件使用相同的变量

c++ - 如何使用 Clang 查找变量声明?

java - BufferedWriter 未创建和写入文件且没有错误

python - 有什么方法可以显示文件更改(例如使用 pyinotify)?

c++ - 读取文件时,如何在使用 << 运算符后计算新行?

c++ - 为什么调用 istream::tellg() 会影响我的程序的行为?

c++ - 在 C++ 中使用构造函数+继承进行类到类的转换

C++仅覆盖文件段

c - 用 C 将文本文件读入数组