Actualmente estoy leyendo el libro C Programming Language de Ritchie & Kernighan. Y estoy bastante confundido sobre el uso de EOF en la función getchar()
.Fin del archivo (EOF) en C
Primero, quiero saber por qué el valor de EOF es -1 y por qué el valor de getchar()!=EOF
es 0. Perdónenme por mi pregunta, pero realmente no entiendo. Realmente lo intenté pero no puedo.
Luego traté de ejecutar el ejemplo en el libro que puede contar el número de caracteres utilizando el siguiente código, pero parece que nunca salgo del ciclo, incluso si presiono enter, entonces me pregunto cuándo alcanzaría el EOF?
main(){
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
Entonces, leí el mismo problema en Problem with EOF in C. La mayoría de las personas aconseja que, en lugar de utilizar EOF, utilice el terminador \ n o el terminador nulo '\ 0', que tiene mucho sentido.
¿Significa que el ejemplo en el libro sirve para otro propósito?
Usted entiende que el libro la mención es por los autores originales del lenguaje C, ¿verdad? –