Если ввести один символ, то итерация цикла выполняется сразу два раза подряд - C (СИ)

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

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

while (getchar())
    printf("Итерация цикла.\n");
Если ввести 1-ин символ, то итерация цикла выполняется сразу два раза подряд. Если 2-а символа - 3-и раза подряд. Если 3-а символа - 4-е раза подряд. ... итд. Почему так происходит?

Решение задачи: «Если ввести один символ, то итерация цикла выполняется сразу два раза подряд»

textual
Листинг программы
#include <stdio.h>
 
int main()
{ 
  
   char sym[1];
   while(fgets(sym, 2, stdin) && sym[0] != 'Q'){
     if('\n'!=sym[0]){
      printf("%#0x(%c)\n", sym[0], sym[0]);
    } 
    else{
      printf("Bingo sym end string\n"); 
    }    
   }           
  return 0;
}

Объяснение кода листинга программы

В этом коде используется язык программирования C. Вот список действий, которые выполняются в этом коде:

  1. Создается массив символов sym, который может хранить до двух символов.
  2. Запускается цикл while, который продолжает выполняться, пока не будет введен символ 'Q' и пока не будет прочитана строка, используя функцию fgets().
  3. В каждой итерации цикла проверяется, является ли первый символ строки символом новой строки ('\n').
  4. Если первый символ не является символом новой строки, то этот символ выводится на экран с помощью функции printf(), при этом используется спецификатор формата %#0x(%c), который выводит символ в шестнадцатеричной системе счисления и в виде символа.
  5. Если первый символ является символом новой строки, то выводится сообщение Bingo sym end string.
  6. После завершения цикла while программа возвращает 0, что означает успешное завершение программы. Код не предусматривает ввод символа, поэтому он будет выполняться бесконечно, пока не будет введен символ 'Q'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы