Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // Программа-пример №1 из главы 28
  2. // Руководства по С для новичков, 3-е издание
  3. // Файл Chapter28ex1.c
  4. /* В основе этой программы программа из Главы 27 (информация о книгах),
  5.  но сведения о книгах печатаются
  6. в файл bookinfo.txt. */
  7. //В первую очередь подключить файл с определением структуры
  8. #include "bookinfo.h"
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. // Кодировка
  12.  #include <Windows.h>
  13.  
  14. FILE * fptr;
  15. int main(){
  16.     SetConsoleCP(1251);// кодировка ввода
  17.     SetConsoleOutputCP(1251);// кодировка вывод Lucida console шрифт
  18.     int ctr;
  19.     struct bookInfo books[3]; // Массив из трех структурных переменных
  20.                              // Получить информацию о каждой книге от пользователя
  21.     for (ctr = 0; ctr < 3; ctr++){
  22.         printf("Введите название книги №%d?\n", (ctr+1));
  23.         gets(books[ctr].title);
  24.         puts("Кто автор? \n");
  25.         gets(books[ctr].author);
  26.         puts("Сколько стоила книга число с точкой?\n");
  27.         scanf(" $%f", &books[ctr].price);
  28.         puts("Сколько страниц в книге? \n");
  29.         scanf(" %d", &books[ctr].pages);
  30.         getchar(); //Создает пустую строку для следующего прохода
  31. }
  32. // При вводе пути к файлу не забудьте
  33. // продублировать обратную
  34. // косую черту, иначе компилятор воспримет ее как
  35. // начало символа преобразования
  36.     fptr = fopen("D:\\Portable\\Cfree\\BookInfo.txt","w");
  37.     // Проверить, открылся ли файл
  38.     if (fptr == 0){
  39.         printf("Ошибка--Невозможно открыть файл.\n");
  40.         exit (1);
  41.     }
  42.     // Напечатать файл заголовок, а затем пройти
  43.     // циклом по массиву и распечатать информацию
  44.     // о книгах, но не на экране, а в файл
  45.     fprintf(fptr, "\n Моя коллекция книг:\n");
  46.         for (ctr = 0; ctr < 3; ctr++){
  47.             fprintf(fptr, "№%d: %s автор %s", (ctr+1), books[ctr].title, books[ctr].author);
  48.             fprintf(fptr, "\nСодержит %d страниц и стоит $%.2f", books[ctr].pages, books[ctr].price);
  49.             fprintf(fptr, "\n\n");
  50.         }
  51.         fclose(fptr); // Всегда закрывайте файлы
  52.     return(0);
  53. }