Написал программу которая читает файл и выводит содержимое: "ФИО - оценка" - C (СИ)

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

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

Написал программу которая читает файл и выводит содержимое ФИО оценка. проблема вот в чём. Я Могу читать вот такой файл и работать с ним:
Листинг программы
  1. Петров Владимир Владимирович 4 4 4 4
  2. Иванов Иван Иванович 3 4 3 5
  3. Сидоров Генадий Александрович 5 5 5 5
А нужно вот такой: Код:
Листинг программы
  1. Петров,Владимир,Владимирович,4,4,4,4
  2. Иванов,Иван,Иванович,3,4,3,5
  3. Сидоров,Геннадий,Александрович,5,5,5,5
вот сам код программы:
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #define N 10
  5. struct _base
  6. {
  7. char name[50];
  8. char lastname[50];
  9. char fname[50];
  10. int matan;
  11. char lin;
  12. int fizika;
  13. char prog;
  14. } base[N];
  15. main(void)
  16. {
  17. FILE *fp;
  18. char i=0, n;
  19. double sred;
  20. char fname[128];
  21. setlocale(LC_ALL,"Russian");
  22. printf("Введите имя файла: ");
  23. gets(fname);
  24. if((fp=fopen(fname, "rb"))==NULL)
  25. {
  26. printf("He удается открыть файл.\n");
  27. exit(1);
  28. }
  29. printf("\n");
  30. while (!feof(fp))
  31. {
  32. n=i;
  33. fscanf(fp,"%s%s%s%s%d%d%d%d",base[i].lastname, base[i].name, base[i].fname, &base[i].matan, &base[i].lin, &base[i].fizika, &base[i].prog);
  34. i++;
  35. }
  36. fclose(fp);
  37. for(i=0;i<n+1;i++)
  38. {
  39. printf("%12s", base[i].lastname);
  40. printf("%3c.%c.",base[i].name[0], base[i].fname[0]);
  41. sred = base[i].fizika-'0'+base[i].matan+base[i].fizika+base[i].prog;
  42. sred=sred/4;
  43. if(sred>=4)
  44. printf(" %2.f\n", sred);
  45. else
  46. printf(" %4.1f !!!!!!!!!!\n", sred);
  47. }
  48. printf("\n");
  49. }
Помогите пожалуйста подправить мой код что бы работал, под ",".

Решение задачи: «Написал программу которая читает файл и выводит содержимое: "ФИО - оценка"»

textual
Листинг программы
  1. fscanf(fp,"%50[^, ]%*c %50[^, ]%*c %50[^, ]%*c %50[^, ]%*c %d%*c %d%*c %d%*c %d"

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

В данном коде используется функция fscanf для чтения данных из файла. Она принимает в качестве аргументов файловый указатель и форматную строку. Вот список действий, которые выполняются в данном коде:

  1. Чтение имени первого человека из файла с помощью формата %50[^, ]. Здесь используется флаг %*c для пропуска пробелов и запятых.
  2. Чтение фамилии первого человека из файла с помощью формата %50[^, ].
  3. Чтение отчества первого человека из файла с помощью формата %50[^, ].
  4. Чтение имени второго человека из файла с помощью формата %50[^, ].
  5. Чтение фамилии второго человека из файла с помощью формата %50[^, ].
  6. Чтение отчества второго человека из файла с помощью формата %50[^, ].
  7. Чтение имени третьего человека из файла с помощью формата %50[^, ].
  8. Чтение фамилии третьего человека из файла с помощью формата %50[^, ].
  9. Чтение отчества третьего человека из файла с помощью формата %50[^, ].
  10. Чтение имени четвертого человека из файла с помощью формата %50[^, ].
  11. Чтение фамилии четвертого человека из файла с помощью формата %50[^, ].
  12. Чтение отчества четвертого человека из файла с помощью формата %50[^, ].
  13. Чтение имени пятого человека из файла с помощью формата %50[^, ].
  14. Чтение фамилии пятого человека из файла с помощью формата %50[^, ].
  15. Чтение отчества пятого человека из файла с помощью формата %50[^, ].
  16. Чтение имени шестого человека из файла с помощью формата %50[^, ].
  17. Чтение фамилии шестого человека из файла с помощью формата %50[^, ].
  18. Чтение отчества шестого человека из файла с помощью формата %50[^, ].
  19. Чтение оценки первого человека из файла с помощью формата %d.
  20. Чтение оценки второго человека из файла с помощью формата %d.
  21. Чтение оценки третьего человека из файла с помощью формата %d.
  22. Чтение оценки четвертого человека из файла с помощью формата %d.
  23. Чтение оценки пятого человека из файла с помощью формата %d.
  24. Чтение оценки шестого человека из файла с помощью формата %d. Пожалуйста, обратите внимание, что в данном коде не предусмотрена обработка ошибок.

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


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

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

11   голосов , оценка 4.364 из 5

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

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

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