Я изучаю C из книги «Язык программирования C». В этом случае, когда он вводил функцию putchar () с использованием следующего кода:
#include<stdio.h>
/* program to copy its input to its
output, one character at a time
using assignment inside while loop */
int main()
{
int c;
while((c=getchar()) != EOF)
putchar(c);
}
Первоначально я думал, что если я хочу ввести '123 \ n' и для этого, когда я нажимаю клавишу '1', тогда в терминале '11' будет виден мне, поэтому после нажатия клавиш '2' и '3' я подумал, что терминал покажет '112233', и когда я наконец нажму 'Enter', появятся две новые строки . Но я был неправ, и ввод был напечатан только тогда, когда я нажал «ввод» или «EOF».
В книге была еще одна проблема - напечатать те строки, длина которых превышает 80 символов. Я написал следующий код, надеясь, что он сработает:
#include<stdio.h>
int main()
{
int c, nc=0;
while((c=getchar())!=EOF)
{
++nc;
if(c=='\n')
{
if(nc > 80)
putchar(c);
nc=0;
}
}
}
Но это не работает.
В первом коде, когда я нажимаю «Enter», он печатает всю строку, во втором коде я хотел подсчитать символы, и когда я нажимаю «Enter», мой код проверяет, превышает ли количество символов 80 или нет, а если больше 80, то я сделал «putchar (c)». Почему это не работает?
Пожалуйста, поясните, что я не прошу решения проблемы в книге. Меня смущает вывод putchar (), пожалуйста, развейте мои сомнения.