Обновление файла с библиотекой <fstream>(перезапись только определенного раздела) - PullRequest
2 голосов
/ 29 сентября 2011

Я хочу спросить, есть ли способ обновить, скажем, текстовый файл с содержанием "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 ]

3 голосов
/ 29 сентября 2011
#include <fstream>

int main()
{
    std::ofstream os("example.txt");
    os<<"This is an apple.";
    os.seekp(9);
    os<<" sam";
    return 0;
}
2 голосов
/ 29 сентября 2011
#include <fstream>

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

fstream по умолчанию открывает файл для чтения и записи.Есть второй аргумент со значением по умолчанию в конструкторе, который управляет этим поведением.

...