Написал программу которая читает файл и выводит содержимое: "ФИО - оценка" - 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 для чтения данных из файла. Она принимает в качестве аргументов файловый указатель и форматную строку. Вот список действий, которые выполняются в данном коде:
- Чтение имени первого человека из файла с помощью формата
%50[^, ]
. Здесь используется флаг%*c
для пропуска пробелов и запятых. - Чтение фамилии первого человека из файла с помощью формата
%50[^, ]
. - Чтение отчества первого человека из файла с помощью формата
%50[^, ]
. - Чтение имени второго человека из файла с помощью формата
%50[^, ]
. - Чтение фамилии второго человека из файла с помощью формата
%50[^, ]
. - Чтение отчества второго человека из файла с помощью формата
%50[^, ]
. - Чтение имени третьего человека из файла с помощью формата
%50[^, ]
. - Чтение фамилии третьего человека из файла с помощью формата
%50[^, ]
. - Чтение отчества третьего человека из файла с помощью формата
%50[^, ]
. - Чтение имени четвертого человека из файла с помощью формата
%50[^, ]
. - Чтение фамилии четвертого человека из файла с помощью формата
%50[^, ]
. - Чтение отчества четвертого человека из файла с помощью формата
%50[^, ]
. - Чтение имени пятого человека из файла с помощью формата
%50[^, ]
. - Чтение фамилии пятого человека из файла с помощью формата
%50[^, ]
. - Чтение отчества пятого человека из файла с помощью формата
%50[^, ]
. - Чтение имени шестого человека из файла с помощью формата
%50[^, ]
. - Чтение фамилии шестого человека из файла с помощью формата
%50[^, ]
. - Чтение отчества шестого человека из файла с помощью формата
%50[^, ]
. - Чтение оценки первого человека из файла с помощью формата
%d
. - Чтение оценки второго человека из файла с помощью формата
%d
. - Чтение оценки третьего человека из файла с помощью формата
%d
. - Чтение оценки четвертого человека из файла с помощью формата
%d
. - Чтение оценки пятого человека из файла с помощью формата
%d
. - Чтение оценки шестого человека из файла с помощью формата
%d
. Пожалуйста, обратите внимание, что в данном коде не предусмотрена обработка ошибок.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д