Работа с файлами в С - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Изучаю тему "Работа с файлами" перепечатал код с учебника,но что-то он не хочет работать так как в книге. Проблема в проверке наличия маркера конца файла. После ввода комбинации ctrl+Z ( ОС Windows ) программа дальше ожидает вода данных.При Вводе комбинации несколько раз, то только в этом случае программа завершается.
Листинг программы
  1. int main()
  2. {
  3. int accaunt;
  4. char name[30];
  5. double balance;
  6. FILE *cfPtr;
  7. if ((cfPtr = fopen("clients.dat", "w")) == NULL)
  8. puts("File no opened");
  9. else
  10. {
  11. puts("Enter the account, name,and balance");
  12. puts("Enter EOF to end input");
  13. printf("%s","? ");
  14. scanf("%d%s%lf",&accaunt,name,&balance);
  15. while (!feof(stdin))
  16. {
  17. fprintf(cfPtr,"%d %s %.2f",accaunt,name,balance);
  18. printf("%s","? ");
  19. scanf("%d%s%lf",&accaunt,name,&balance);
  20. }
  21. fclose(cfPtr);
  22. }

Решение задачи: «Работа с файлами в С»

textual
Листинг программы
  1. scanf("%d%s%f%*[^\n]%*c", &namber, name, &balance)

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

  1. В данном коде используется функция scanf для ввода данных с клавиатуры в переменные программы.
  2. Форматный спецификатор %d означает, что будет введено целочисленное значение, которое будет сохранено в переменной namber.
  3. Форматный спецификатор %s означает, что будет введено строковое значение, которое будет сохранено в переменной name.
  4. Форматный спецификатор %f означает, что будет введено числовое значение с плавающей точкой, которое будет сохранено в переменной balance.
  5. Дополнительный символ %*[^\n] означает, что будет пропущено до конца строки, пока не будет введен символ новой строки.
  6. Дополнительный символ %*c означает, что будет пропущено до конца строки, пока не будет введен символ новой строки, и за ним будет прочитано и игнорировано любое количество символов до следующего символа новой строки.
  7. Ввод данных осуществляется с помощью стандартного ввода (клавиатуры).

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


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

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

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы