Каково нормальное поведение C getchar / putchar? - PullRequest
0 голосов
/ 13 февраля 2019

Я работаю над упражнениями в «C Primer Plus» Стивена Прата, и у меня есть вопрос по поводу.листинг 8.1:

/* echo.c -- echoes input */
#include <stdio.h>
int main(void)
{
  char ch;

  while ((ch = getchar()) != '#')
    putchar(ch);
  // while ((ch = getchar()) != '.')
  //   putchar(ch);
  return 0;
}

Оригинальный код не включал комментарии;Я добавил их, и они являются предметом моего вопроса.Если я раскомментирую эти строки, на выходе не будет заметного влияния.Он по-прежнему заканчивается знаком # без его печати.Дополнительный текст не отображается, и я возвращаюсь в командную строку.

Почему это так?Кроме того, # потребляется getchar()?Вот почему я включил второй цикл - из любопытства я пытался отобразить любые оставшиеся символы в буфере.Очевидно, я не знаю, что я делаю!

...