очистить данные внутри текстового файла в C ++
Я программирую на С++. В моем коде я создаю текстовый файл, записываю данные в файл и читаю из файла с помощью потока, после того как закончу последовательность, которую хочу, я хочу очистить все данные в файле txt. Может ли кто-нибудь сказать мне команду очистить данные в txt файле. Спасибо вам
3 ответа
Если вы просто открываете файл для записи с помощью опции truncate, вы удаляете содержимое.
Удаление файла также приведет к удалению содержимого. См. удалить файл.
Если вы установите флаг trunc.
Я тестировал это для своих собственных нужд в общей ситуации программирования, которую я имел. Определенно обязательно заготовьте «.close()»; операция. Если вы этого не сделаете, вам не сообщается, вы или нет, вы пытаетесь или просто прикладываете к попрошайничеству файл. В зависимости от типа файла, который вы можете просто добавить к файлу, который в зависимости от ваших потребностей может не заполнить его цель. Обязательно наберите «.close()»; экспликация в файле, который вы пытаетесь заменить.
How to clear the content of a file after it is opened using fstream? [duplicate]
I need to open a file in read/write mode, read its content and then clear all. So, I cannot open it in truncate mode. How can I do that?
![]()
2 Answers 2
Hate to disappoint you, but..
There’s no standard way of clearing the contents of a file from an open std::fstream, the straight forward way is therefore to handle the two operations as what they really are.. two operations.
First handle all the reading, and later the writing (through a different stream object).
The solution
In other words; first open the file in read-only mode (std::ifstream) and read the data you are interested in, then discard that file-handle and open the file again.. this time in write-only and truncation mode (std::ofstream), so that you will clear the contents of the file.
fstream — очистить данные внутри текстового файла в переполнении стека
Я программирую на C ++. В моем коде я создаю текстовый файл, записываю данные в файл и считываю из файла поток, после того как я закончу последовательность, я хочу очистить все данные в текстовом файле. Может кто-нибудь сказать мне команду, чтобы очистить данные в текстовом файле. Спасибо
Решение
Если вы просто откроете файл для записи с помощью опции truncate, вы удалите содержимое.
Другие решения
Удаление файла также удалит содержимое.
Увидеть удалить файл .
Если вы установите флаг усечения.
Я тщательно проверил это для своих собственных потребностей в обычной ситуации программирования. Обязательно обязательно предварительно отформатируйте «.close ();» операция. Если вы этого не сделаете, вы не узнаете, обрезаете вы или нет, или просто добавляете файл в начало. В зависимости от типа файла вы можете просто добавить файл, который, в зависимости от ваших потребностей, может не полностью соответствовать его назначению. Обязательно вызовите «.close ();» простота на фстриме вы пытаетесь заменить.
очистить данные внутри текстового файла в С++
Я программирую на С++. В моем коде я создаю текстовый файл, записываю данные в файл и читаю из файла с помощью потока, после того как я закончу последовательность, которую хочу, я хочу очистить все данные внутри текстового файла. Может кто подскажет команду для очистки данных в txt файле. Спасибо
задан 10 июн ’13, 22:06
5 ответы
Если вы просто откроете файл для записи с опцией truncate, вы удалите содержимое.

спасибо .. эта опция удаляет содержимое, когда я запускаю эту строку или закрываю файл? — Zeyad
Содержимое удаляется при открытии с помощью std::ofstream::trunk. — ЧистыйW
офстрим не нужен std::ofstream::out флаг, потому что он присутствует там по умолчанию. — Хасиб Мир
@HaSeeBMiR, это неправильно. Здесь нужно указать флаги out и trunc, иначе это не сработает. Да, флаг out используется по умолчанию, но в тот момент, когда он передается во флаге trunc, он переопределяется. Попробуйте. — Мерфи Мэн
Вот почему вы должны использовать побитовое ИЛИ ‘|’ чтобы оба работали. — Хасиб Мир
Насколько мне известно, простое открытие файла в режиме записи без режима добавления удалит содержимое файла.
Первая поместит бит позиции в начало, стирая все содержимое, а вторая версия поместит бит позиции в бит конца файла и запишет оттуда.
ответ дан 15 мар ’20, в 15:03
Это самый простой ответ, который я нашел! — Амин Гермази
между этими двумя решениями должна быть какая-то разница в файловой системе. возможно, truncate обеспечивает полное удаление битов из файловой системы (или, может быть, реализация ДОЛЖНА это сделать?) — Кален
Если вы установите флаг trunc.
Я тщательно проверил это для своих собственных нужд в обычной ситуации программирования, которая у меня была. Обязательно предварительно сформируйте «.close();» операция. Если вы этого не сделаете, невозможно сказать, усекаете ли вы или просто прикладываете к попрошайничеству файла. В зависимости от типа файла вы можете просто добавить его поверх файла, который в зависимости от ваших потребностей может не выполнять свою задачу. Обязательно вызовите «.close();» явное указание на fstream, который вы пытаетесь заменить.