#include <stdio.h>
void main()
{
int c;
c = getchar();
while(c != EOF)
{
putchar(c);
c = getchar();
}
}
В приведенном выше коде я понимаю, что putchar (c) печатает первый символ строки, хранящейся в переменной c. Однако я не понимаю, как можно напечатать всю строку, когда putchar (c) помещается внутри этого цикла while. Как условие c! = EOF увеличивает индекс строки c? Как c = getchar() снаружи, в то время как цикл отличается от цикла в теле цикла?Символ IO в C
Нет * целая строка *. 'getchar()' получает один символ за раз; петля выводит это 'char', а затем извлекает другую. ('c' должен быть объявлен как' char', потому что функция 'getchar()', а не 'getint()', BTW.) –
@KenWhite no, 'getchar()' возвращает 'int', потому что' EOF 'является' int', и вам нужно проверить его. – Kevin
@KenWhite, функция: 'getchar()' возвращает 'int', поэтому код верен. – user3629249