Прочитать из файла, очистить его, написать в него - PullRequest
14 голосов
/ 16 января 2010

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

У меня вопрос, как очистить файл после чтения из него. Я знаю, что могу одновременно открыть файл и очистить его, но есть ли какая-нибудь функция, которую я могу вызвать в потоке, чтобы очистить его содержимое?

Ответы [ 2 ]

15 голосов
/ 16 января 2010

Вы должны открыть его, выполнить операции ввода, а затем закрыть его и снова открыть с установленным флагом std :: fstream :: trunc.

#include <fstream>

int main()
{
    std::fstream f;
    f.open("file", std::fstream::in);

    // read data

    f.close();
    f.open("file", std::fstream::out | std::fstream::trunc);

    // write data

    f.close();

    return 0;
}
4 голосов
/ 16 января 2010

Если вы хотите быть в полной безопасности в случае сбоя или другого катастрофического события, вы должны выполнить запись во второй, временный файл. После завершения удалите первый файл и переименуйте временный файл в первый файл. Обратитесь к библиотеке Boost Filesystem за помощью в этом.

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