Прочесть структуру из файла, модифицировать и записать обратно в файл - C (СИ)
Формулировка задачи:
Составить структуру в файле на языке си . читаешь структуру из файла, меняешь значения структуры и опять её записываешь
сама не программист по этому не разбираюсь во всём этом знаю только как составить структуру , а как её изменять и заново записать не понимаю, помогите
Решение задачи: «Прочесть структуру из файла, модифицировать и записать обратно в файл»
textual
Листинг программы
#include <stdio.h>
#include <stdio.h> // Бог любит троицу, поэтому заменил conio.h на stdio.h
#include <stdio.h>
struct str {
int h;
int m;
int s;
};
int main(int argc, char* argv[]) {
FILE* strfile = fopen("str.str", "rb");
struct str t;
if(strfile) {
fread(&t, sizeof(struct str), 1, strfile);
fclose(strfile);
printf("Str from file: {h = %d, m = %d, s = %d}\n", t.h, t.m, t.s);
}
else {
puts("File str.str is not exists!!!");
}
printf("Enter h: ");
scanf("%d", &t.h);
printf("Enter m: ");
scanf("%d", &t.m);
printf("Enter s: ");
scanf("%d", &t.s);
printf("Str to file: {h = %d, m = %d, s = %d}\n", t.h, t.m, t.s);
strfile = fopen("str.str", "wb");
fwrite(&t, sizeof(struct str), 1, strfile);
fclose(strfile);
getch();
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем структуру str с полями h, m, s типа int
- Открываем файл
str.strв бинарном режиме на чтение - Создаем объект struct str t и инициализируем его значениями из файла
- Если файл успешно открыт, выводим значения структурного объекта t
- Если файл не удалось открыть, выводим сообщение об ошибке и закрываем программу
- Запрашиваем у пользователя ввод значений для полей структуры str
- Записываем введенные значения в соответствующие поля структуры t
- Выводим значения структурного объекта t
- Открываем файл
str.strв бинарном режиме на запись - Записываем значения структурного объекта t в файл
- Закрываем файл
- Получаем символ для завершения программы
- Возвращаем 0 для завершения программы