Сохранение результата в файл и извлечение - C (СИ)
Формулировка задачи:
Здравствуйте! Подскажите,пожалуйста,как сделать извлечение из файла?
Вот сохранение (для списка)
void SaveSl() { FILE* f = fopen("save.txt", "w"); if(f!=NULL) { School*a = temp; while(a!=NULL) { fprintf(f, "%s\n", a->num); fprintf(f, "%s\n", a->surname); fprintf(f, "%s\n", a->name); fprintf(f, "%s\n", a->sex); fprintf(f, "%s\n", a->grade); fprintf(f, "%s\n", a->adress); fprintf(f, "%d\n", a->data); a = a->next; } fclose(f); } }
Решение задачи: «Сохранение результата в файл и извлечение»
textual
Листинг программы
void READSl() { FILE* f = fopen("save.txt", "r"); if(f!=NULL) { School*a = temp; while(!feof(f))//пока не дошли до конца файла считываем { fscanf(f, "%s\n", &a->num); fscanf(f, "%s\n", &a->surname); fscanf(f, "%s\n", &a->name); fscanf(f, "%s\n", &a->sex); fscanf(f, "%s\n", &a->grade); fscanf(f, "%s\n", &a->adress); fscanf(f, "%d\n", &a->data); a = a->next; } fclose(f); } }
Объяснение кода листинга программы
- Объявлена функция
READSl()
- В функции объявлен файловый указатель
f
- Проверяется, открылся ли файл
save.txt
для чтения (fopen(
save.txt,
r)
- Если файл успешно открыт, то в цикле while считываются данные из файла в переменные
a
типаSchool
- В каждой итерации цикла считывается одно поле:
num
,surname
,name
,sex
,grade
,adress
,data
- После считывания всех данных, файл закрывается (
fclose(f)
) - Если файл не открылся (
f==NULL
), то ничего не считывается и файл закрывается (fclose(f)
)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д