В настоящее время я читаю книгу «Язык программирования 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', что имеет большой смысл.
Означает ли это, что пример в книге служит другой цели?