Заставьте std :: fstream записывать в конец файла, но читать с начала - PullRequest
0 голосов
/ 10 февраля 2020

Название объясняет это довольно хорошо. У меня есть файл, который я усекаю и записываю в него (в качестве теста для контроля исходного содержимого файла). Затем я хочу сделать операции чтения / записи с этим файлом. В частности, я хочу записать в конец файла, но читать с начала.

Процедура:

// (1) Make an initial file (truncated std::ofstream) with some contents
// (2) Close initial file stream
// (3) Re-open file with read and write permissions (std::fstream)
// (4) Set stream read pointer to beginning of file
// (5) Set stream write pointer to the end of file

Это несколько подразумевается вместе с вопросом, но что std::fstream::openmode побитовые параметры, которые я должен использовать, чтобы открыть файл (или это достаточно хорошо по умолчанию std::fstream::in | std::fstream::out)?

1 Ответ

0 голосов
/ 10 февраля 2020

fstream не имеет отдельных позиций чтения и записи, которые нужно искать при переходе с чтения на запись.

seekg и seekp оба вызывают pubseekpos, что для fstream делает то же самое для ввода и вывода: https://en.cppreference.com/w/cpp/io/basic_filebuf/seekpos.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...