Выгрузка данных в файл .txt
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Здравствуйте, я новис в c++. Подскажите пожалуйста как сделать выгрузку данных в файл .txt
К примеру, пользователь вводит имя, возраст, пол и так далее, а программа потом эти данные выгружает в файл.
std::ofstream
zyxld, сие действие называется сериализацией (формат txt — как частный случай).
Например, в программе имеется некая структура данных, которую надо сначала преобразовать в последовательную форму (для сохранения в файле, передачи другому процессу и т.п.), а затем из последовательной формы опять преобразовать в структуру данных для использования в программе (не факт, что в той же). Т.е. сначала сериализация, а потом десериализация.
Если примитивно, то выглядит так. Пишется функция (метод), которая берёт по очереди все необходимые переменные (члены структуры/класса) и, используя функции вывода (из
<ostream>
или<cstdio>
— на твой выбор), выводит данные в открытый поток/файл. При выводе должен использоваться некий символ разделитель полей, например, символ перевода строки.Для десериализации также пишется функция (метод), которая из открытого потока/файла читает данные в переменные (члены структуры/класса) в том же порядке и с учётом того же символа-разделителя, как это было сделано при сериализации.
Понятно, что перед вызовом этих функций (методов) поток/файл должен быть открыт в соответствующем режиме (чтение или запись), а после окончания процесса поток/файл должен быть закрыт.
Для структуры/класса для сериализации/десериализации в текстовом формате можно перегрузить операции
<<
и>>
. Если формат не текстовый (двоичный), то лучше использовать пару методов, а не перегрузку операций.PS. Ый, я бы даже уточнил,
std::ostream
. Аstd::ofstream
— это уже частности.