Как переписать только часть файла в c ++

Я хочу внести изменения в середину текстового файла с помощью c ++, не изменяя остальную часть файла. Как я могу это сделать?

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

Используйте std :: fstream .

Простейший std :: stream не будет работать. Он усекает ваш файл (если вы не используете опцию std :: ios_base :: app, которая в любом случае не является тем, что вы хотите).

std::fstream s(my_file_path); // use option std::ios_base::binary if necessary s.seekp(position_of_data_to_overwrite, std::ios_base::beg); s.write(my_data, size_of_data_to_overwrite); 

Как правило, откройте файл для чтения в текстовом режиме, прочитайте строку после строки до места, которое хотите изменить, при чтении строк, напишите их во втором текстовом файле, который вы открыли для записи. В месте для изменения напишите во второй файл новые данные. Затем продолжайте чтение / запись файла до конца.

  • Каков самый быстрый способ чтения текстового файла по очереди?
  • Как удалить строку из текстового файла на C #?
  • Как импортировать данные из текстового файла в базу данных mysql
  • Как добавить новую строку в txt-файл
  • Java: как читать текстовый файл
  • Давайте будем гением компьютера.