Сохранение результата в файл и извлечение - 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);
}
}

Объяснение кода листинга программы

  1. Объявлена функция READSl()
  2. В функции объявлен файловый указатель f
  3. Проверяется, открылся ли файл save.txt для чтения (fopen(save.txt,r)
  4. Если файл успешно открыт, то в цикле while считываются данные из файла в переменные a типа School
  5. В каждой итерации цикла считывается одно поле: num, surname, name, sex, grade, adress, data
  6. После считывания всех данных, файл закрывается (fclose(f))
  7. Если файл не открылся (f==NULL), то ничего не считывается и файл закрывается (fclose(f))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5
Похожие ответы