В настоящее время я читаю книгу программирования C на языке Ritchie и Kernighan. И я довольно смущен об использовании EOF в функции getchar()
.
Во-первых, я хочу знать, почему значение EOF равно -1 и почему значение getchar()!=EOF
равно 0. Прошу прощения за мой вопрос, но я действительно не понимаю. Я действительно пытался, но не могу.
Затем я попытался запустить пример в книге, который может подсчитать количество символов, используя код ниже, но кажется, что я никогда не выхожу из цикла, даже если я нажимаю кнопку ввода, поэтому мне интересно, когда я смогу добраться до EOF
main(){
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
Затем я прочитал ту же проблему в Проблема с EOF в C. Большинство людей советовали, что вместо использования EOF используйте терминатор \n или нулевой терминатор '\ 0', который имеет большой смысл.
Означает ли это, что пример в книге служит другой цели?