Grigorii Mordkovich Ответов: 3

Как динамически записывать в текстовый файл на языке C++


Всем привет. Вы знаете, как в c++, если вы используете std::ofstream для вывода в файл, вы должны обновлять его каждый раз, когда программа выполняется, чтобы увидеть какие-либо изменения. Итак, вопрос в том, можно ли писать в файл и как бы видеть вживую, как меняется его содержимое (другими словами, автоматически обновлять файл во время записи в него) и как я могу это сделать? Заранее Вам большое спасибо.

Что я уже пробовал:

std::ofstream для вывода в текстовый файл.

3 Ответов

Рейтинг:
2

k5054

Это будет зависеть от вашей операционной системы. Если у вас есть linux или MacOS, то используйте tail -f. Если вы работаете в windows и у вас есть PowerShell, то "Get-Content filenamehere-Wait-Tail 30" может работать, если у вас достаточно свежая версия PowerShell. Если нет, то погуглите "хвостовую команду windows" и посмотрите, работает ли что-нибудь там для вас.


Grigorii Mordkovich

Большое спасибо. Я попробую это сделать.

Рейтинг:
1

Rick York

Другой вариант-использовать файл, сопоставленный с памятью. Я знаю, что Windows API имеет это, и я считаю, что это доступно и в Linux.


Рейтинг:
0

KarstenK

Самый простой способ-проверить время файла и при изменении прочитать файл и обнаружить изменения.

Есть разные варианты инструменты и фреймворки вышли, но QFileSystemWatcher выглядит интересно И портативный. Для Windows вы можете Получение Уведомлений Об Изменении Каталога.

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

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


Grigorii Mordkovich

Спасибо за ваше предложение.