Нужно последовательно выводить текст разделённый по абзацам из файла - C (СИ)
Формулировка задачи:
Делаю тест в консоли. Выводится первый вопрос из файла, пользователь вводит ответ- выводится следующий, из этого же файл .
Решение задачи: «Нужно последовательно выводить текст разделённый по абзацам из файла»
textual
Листинг программы
FILE *f=fopen("Тестик","r");
char s[255]; int i,j,c=0;
while(!!feof(f)){
fscanf(f,"%i %255s",&i,&s);
printf("Вопрос: %s",s);
scanf("%d",&j);
c+=(j==i);
}
fclose(f);
printf("Правильных ответов: %d",c);
Объяснение кода листинга программы
FILE *f=fopen(Тестик,r);- Открывает файлТестикдля чтения.char s[255]; int i,j,c=0;- Объявляет переменныеi,jиc, а также массивsдля хранения строки.while(!!feof(f)){- Начинает цикл, который будет выполняться до тех пор, пока не достигнет конца файла.fscanf(f,%i %255s,&i,&s);- Считывает из файла целочисленное значение и строку, сохраняет их в переменныхiиsсоответственно.printf(Вопрос: %s,s);- Выводит на экран строкуs, представляющую вопрос.scanf(%d,&j);- Считывает с клавиатуры целочисленное значение и сохраняет его в переменнойj.c+=(j==i);- Увеличивает значение переменнойcна единицу, если введенное значениеjравно считанному из файла значениюi, иначе оставляет без изменений.fclose(f);- Закрывает файл.printf(Правильных ответов: %d,c);- Выводит на экран количество правильных ответов.