Нужно последовательно выводить текст разделённый по абзацам из файла - 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);
- Выводит на экран количество правильных ответов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д