ВУЗ:
Составители:
Рубрика:
44
puts(books[i].author);
printf("%d\n",books[i].year);
}
FILE* fp = fopen("my_file.txt","w");
for(i=0;i < N;i++)
fprintf(fp,"%s %s %d\n",books[i].name,books[i].author,
books[i].year);
fclose(fp);
fp = fopen("my_file.txt","r");
for(i=0;i < N;i++)
fscanf(fp,"%s %s %d\n",books[i].name,books[i].author,
&books[i].year);
fclose(fp);
printf("------------------------------------------------\n");
for(i=0;i < N;i++)
{
puts(books[i].name);
puts(books[i].author);
printf("%d\n",books[i].year);
}
return 0;
}
При выполнении данной программы вводится информация по книгам в
массив структур books и выводится введенная информация на экран. Затем
открывается файл my_file.txt на запись, в который заносится информация по
книгам в порядке: наименование, автор, год издания. Так как число книг в
данном случае равно двум, то выходной файл будет выглядеть следующим
образом:
Onegin Pushkin 1983
Oblomov Griboedov 1985
Затем, файл my_file.txt открывается на чтение и с помощью функции scanf()
осуществляется считывание информации в элементы структуры. В заключении
считанная информация выводится на экран монитора.
Представленный пример показывает возможность структурированной
записи информации в файл и ее считывания. Это позволяет относительно
просто сохранять разнородные данные в файле для их дальнейшего
использования в
программах.
При внимательном рассмотрении предыдущих примеров можно заметить,
что функции считывания информации из файла «знают» с какой позиции
следует считывать очередную порцию данных. Действительно, в последнем
примере функция fscanf(), вызываемая в цикле, «знает» что нужно считать
сначала первую строку из файла, затем вторую и т.д. И программисту нет
необходимости задавать
позицию для считывания данных. Все происходит
автоматически. Вследствие чего появляется такая особенность работы? Дело в
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »
