C как сохранять данные
Перейти к содержимому

C как сохранять данные

  • автор:

Live образ c сохранением пользовательских данных, какие варианты?

Собрать Live образ не проблема, а какие варианты есть сохранения изменений? Мне на ум приходит такое, заливаем образ на флешку, чаще всего на флеш мамяти будет оставаться огрызок места, из образа инициализируется скрипт который разметит свободное пространство, примонтирует нужные каталоги туда и пропишет в fstab их. При ребуте fstab подхватит раздел и всё примонтирует.

В теории вроде всё складно, а вот на практике пока не знаю. Может есть какие иные варианты? Live образ Debian stable.

Хм, а можно ли так. Я собираю live-debian.iso ISO 9660 заливаю на флешку и запускаю, но допустим делаю apt install nvim, может ли система сама себя «дописать»? И да я понимаю что можно сделать просто img образ диска установленной системы и заливать на флешку, но мне интересно именно в случае iso образов.

Сохранение данных из текстового файла в строку

Открыть текстовый файл example.txt, сохранить его содержимое в строку и вывести на экран.

Исходный код на языке C++

/** * Чтение данных из текстового файла в строку и вывод на экран */ #include #include using namespace std; int main(int argc, char* argv[]) < ifstream fp("example.txt", ios::in); if (fp.is_open()) < // Если файл открыт успешно // Получение размера файла fp.seekg (0, fp.end); int length = fp.tellg(); char *buffer = new char[length]; fp.seekg (0, fp.beg); // Считывание данных из файла fp.read(buffer, length); // Закрытие файла fp.close(); // Вывод данных на экран cout else < cerr return 0; >

C как сохранять данные

Потоки для работы с текстовыми файлами представляют объекты, для которых не задан режим открытия ios::binary .

Запись в файл

Для записи в файл к объекту ofstream или fstream применяется оператор
#include #include int main() < std::ofstream out; // поток для записи out.open("hello.txt"); // открываем файл для записи if (out.is_open()) < out out.close(); std::cout

Здесь предполагается, что файла «hello.txt» располагается в одной папке с файлом программы. Данный способ перезаписывает файл заново. Если надо дозаписать текст в конец файла, то для открытия файла нужно использовать режим ios::app :

std::ofstream out("hello.txt", std::ios::app); if (out.is_open()) < out out.close();

Чтение из файла

Если надо считать всю строку целиком или даже все строки из файла, то лучше использовать встроенную функцию getline() , которая принимает поток для чтения и переменную, в которую надо считать текст:

#include #include #include // для std::getline int main() < std::string line; std::ifstream in("hello.txt"); // окрываем файл для чтения if (in.is_open()) < while (std::getline(in, line)) < std::cout > in.close(); // закрываем файл >

Также для чтения данных из файла для объектов ifstream и fstream может применяться оператор >> (также как и при чтении с консоли):

#include #include #include struct Point < Point(double x, double y): x, y <> double x; double y; >; int main() < std::vectorpoints< Point, Point, Point>; std::ofstream out("points.txt"); if (out.is_open()) < // записываем все объекты Point в файл for (const Point& point: points) < out > out.close(); std::vector new_points; std::ifstream in("points.txt"); // окрываем файл для чтения if (in.is_open()) < double x, y; while (in >> x >> y) < new_points.push_back(Point); > > in.close(); for (const Point& point: new_points) < std::cout >

Здесь вектор структур Point записывается в файл.

for (const Point& point: points)

При чем при записи значений переменных файл они отделяются пробелом. В итоге будет создаваться файл в формате

0 0 4 5 -5 7

Используя оператор >>, можно считать последовательно данные в переменные x и y и ими инициализировать структуру.

double x, y; while (in >> x >> y) < new_points.push_back(Point); >

Но стоит отметить, что это ограниченный способ, поскольку при чтении файла поток in использует пробел для отделения одного значения от другого и таким образом считывает эти значения в переменные x и y. Если же нам надо записать и затем считать строку, которая содержит пробелы, и какие-то другие данные, то такой способ, конечно, не сработает.

Сохранение данных в файл

Author24 — интернет-сервис помощи студентам

Добрый день. Возникла проблема с сохранением и читанием этих данных из файла.
Есть массив из 5 структур. Все это забивается в ручную, после чего сохраняется в файл. Дальше из этого файла считываются данные в другой массив структур.
Вроде бы все просто, но вот в файл сохраняет какую-то крокозябру, в следствии чего считывается с него такая же крокозябра.
Вот немного кода:
Функция сохранения данных

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
struct data { char name[30]; int number; char name2[10]; }; int save(struct data data1[]) { FILE *file; if ((file = fopen("database.txt", "w")) == NULL) printf("error\n"); else { fwrite(&data1, sizeof(data), 5, file); } fclose(file); printf("Successful \n"); getch(); return 0; }

После открытия файла я вижу следующее(скрин)
Как я считываю данные в новый массив из файла:

1 2 3 4 5 6 7 8 9 10 11
if ((file = fopen("database.txt", "rb")) == NULL) { printf("error\n"); fclose(file); return 0; } else { for (int i = 0; i  5; i++) { fread(&data2, sizeof(data), 1, file); } }

Подскажите где моя ошибка
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Сохранение данных в файл
как сохранить на wpf данные в файл,которые в двух combobox-ах и потом опять загрузить данные.

Сохранение данных в файл
Здравствуйте. На сколько мне известно, чтобы сохранить данные в файл надо использовать класс.

Сохранение данных в файл
Как сохранить (а затем прочитать) в файл массив элементов класса? class SaveToFile < public: .

Сохранение данных в файл
Нужно сохранить данные в файл (коллекция)

Регистрация: 04.11.2016
Сообщений: 35

Нашел корень проблемы. Если переменные типа data
(struct data data1[5]
(struct data data2[5]
Объявлять глобально, то все отлично работает. Если локально в main и передавать в функцию save - нет. Даже если сохранение не делать отдельной функцией, а прописывать в мейне то все равно выходит крокозябра. Как решить? Глобальные переменные не хочется оставлять

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Сохранение данных в файл
Прошу помочь мне с проблемой. Необходимо сохранять данные из поля RichEdit в текстовый файл.

Сохранение данных в файл
Есть 3 элемента: TextBox Button ComboBox Требуется: 1) После ввода слова в TextBox, нужно.

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

Сохранение данных в файл
Доброго времени суток. Допустим,есть таблица с некоторыми данными. Как сделать кнопку сохранения.

Сохранение данных в файл
Добрый вечер! Есть задача: В расписании поездов указано: номер поезда, пункт отправления.

Сохранение данных в файл
Сохраняет не те переменные. Может я что то делаю не так? <?php $name = $_POST; // собираем.

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *