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

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

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

Написал программу которая читает файл и выводит содержимое ФИО оценка. проблема вот в чём. Я Могу читать вот такой файл и работать с ним:
Петров Владимир Владимирович 4 4 4 4
Иванов Иван Иванович 3 4 3 5
Сидоров Генадий Александрович 5 5 5 5
А нужно вот такой: Код:
Петров,Владимир,Владимирович,4,4,4,4
Иванов,Иван,Иванович,3,4,3,5
Сидоров,Геннадий,Александрович,5,5,5,5
вот сам код программы:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define N 10
 
    struct _base
    {
        char name[50];
        char lastname[50];
        char fname[50];
        int matan;
        char lin;
        int fizika;
        char prog;
    } base[N];
 
main(void)
{
    FILE *fp;
    char i=0, n;
    double sred;
    char fname[128];
 
    setlocale(LC_ALL,"Russian");
    
    printf("Введите имя файла: ");
    gets(fname);
 
    if((fp=fopen(fname, "rb"))==NULL) 
    {
        printf("He удается открыть файл.\n");
        exit(1);
    }
 
    printf("\n");
 
    while (!feof(fp))
    {
        n=i;
        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);
        i++;
    }
    fclose(fp); 
 
    for(i=0;i<n+1;i++)
    {
 
        printf("%12s", base[i].lastname);
        printf("%3c.%c.",base[i].name[0], base[i].fname[0]);
        sred = base[i].fizika-'0'+base[i].matan+base[i].fizika+base[i].prog;
        sred=sred/4;
        
        if(sred>=4)
        printf(" %2.f\n", sred);
        else
            printf(" %4.1f !!!!!!!!!!\n", sred);
    } 
 
    printf("\n");
}
Помогите пожалуйста подправить мой код что бы работал, под ",".

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

textual
Листинг программы
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
Похожие ответы