Вывод на консоль с файла по заданным параметрам - C (СИ)
Формулировка задачи:
Как сделать так, чтобы вывести на экран всю информацию при заданном параметре, если вводим несколько студентов, то как потом вывести тех у кого средний бал не ниже заданного ?
#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <string.h>
FILE *fp;
int main(){
struct
{
char studentInfo[20];
char group[20];
int averageRating;
int grants;
} book;
char studentInfo_[20];
int rec_count=0;
if ((fp = fopen("C:\\Users\\Михаил\\Documents\\CPP\\output.txt", "w")) == NULL)
{
printf("\n file not open");
exit(1);
}
while(1){
printf("\n PIB studenta ");
scanf("%s",studentInfo_);
if (strcmp(studentInfo_, "***")==0) break;
strcpy(book.studentInfo,studentInfo_);
printf("\n grupa ");
scanf("%s",book.group);
printf("\n seredniy bal ");
scanf("%d",&book.averageRating);
printf("\n stipendiya ");
scanf("%d",&book.grants);
fprintf(fp,"%s \n",book.studentInfo);
fprintf(fp,"\n%s ",book.group);
fprintf(fp,"%d \n",book.averageRating);
fprintf(fp,"%d \n",book.grants);
rec_count++;//Есть очередная запись
}
printf("\n Inputs %d records",rec_count);
void clear_kb(void);// Очистка буфера ввода
fclose(fp);
char student[20];
char gr[20];
int avRate;
int grants;
if ((fp = fopen("C:\\Users\\Михаил\\Documents\\CPP\\output.txt", "r")) == NULL)
{
printf("\n file not open");
exit(1);
}
while(!feof(fp))
{
void clear_kb(void);
fscanf(fp,"%s",student);
fscanf(fp,"%s",gr);
fscanf(fp,"%d",&avRate);
fscanf(fp,"%d",&grants);
int vBal;
printf("\n Vvedite srednii bal: ");
scanf("%d",&vBal);
if (book.averageRating>vBal)
{
printf("\n %s ",student);
printf(" %20s ",gr);
printf("%6d ",avRate);
printf("%6d ",grants);
}
}
void clear_kb(void);
fclose(fp);
getch();
return 0;
}Решение задачи: «Вывод на консоль с файла по заданным параметрам»
textual
Листинг программы
int vBal;
printf("\n Vvedite srednii bal: ");
scanf("%d",&vBal);
if (book.averageRating>vBal)
{
printf("\n %s ",student);
printf(" %20s ",gr);
printf("%6d ",avRate);
printf("%6d ",grants);
}
Объяснение кода листинга программы
- Объявление переменной
vBalтипаint - Вывод сообщения с просьбой ввести средний балл
- Ввод среднего балла с помощью функции
scanfв переменнуюvBal - Проверка условия
if (book.averageRating>vBal) - Если условие истинно, то переход к следующему шагу
- Вывод значения переменной
student(название книги) - Вывод значения переменной
gr(группа книги) - Вывод значения переменной
avRate(средний рейтинг книги) - Вывод значения переменной
grants(количество грантов книги) - Если условие ложно, то выполнение кода завершается