Моя проблема заключается в следующем:putchar() и GetChar() цикл объяснение
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
while((c = getchar()) != EOF) {
putchar(c);
}
Эти два делает то же самое. Мой вопрос в том, как они работают? И почему они оба дают одинаковый результат?
Насколько я понимаю, это позволяет взять первый пример в качестве примера, он читает один символ, его не EOF-> входите в putchar (printchar на экране), а затем переходите в другой символ. Однако, скажем, я ввожу что-то вроде «Привет», он выведет Привет, как и почему? Почему он не просто выводит 5x H -> HHHHH?
SO не репетиторский сайт. Вам нужна книга C или учебник. – Olaf
@ Ludvig Westerdahl Они работают так, как они писали.:) –
Если вы внимательно посмотрите на первый пример, вы увидите, что 'c' оценивается перед циклом' while' и в конце. Во втором примере 'c' оценивается как часть выражения цикла while. Он похож на идиоматический 'if ((a + = 2) == 3) ...' в отличие от более простого 'a + = 2; if (a == 3) ... ' –