Меня интересует C, поэтому я хочу больше узнать о C, особенно C89, чтобы увидеть, как этот язык менялся с течением времени :).Я купил Денисом Ритчи "Язык программирования Си" (2-е издание).
Пример в книге подводит меня к сложной ситуации с функцией getchar ().
Пример 1, которыймой пример после прочтения книги:
#include <stdio.h>
int main()
{
int c = getchar();
printf("\'\\n\' character in c: %d\n", c == '\n');
printf("\'\\n\' character in c: %d\n", c == '\n');
}
Вывод примера 1:
a
'\n' character in c: 0
'\n' character in c: 0
В этом случае выходные данные не показывают никаких новых строк в этом входе,ОДНАКО другой пример, который я пробую:
#include <stdio.h>
int main()
{
int c;
while ((c = getchar()) != EOF) {
printf("\'\\n\' character in c: %d\n", c == '\n');
}
}
и вывод кода:
a
'\n' character in c: 0
'\n' character in c: 1
Я не понимаю, почему второй пример дублирует функцию printf () икак он мог прочитать символ '\ n', когда он входит в цикл.Между тем, первый пример не показывает ничего, касающегося символа '\ n'