En diversos ejemplos encontrados en la web fgetc()
se utiliza como esto:fgetc(): ¿Es suficiente con solo verificar EOF?
FILE *fp = fopen(PATH, "r");
if (fp == NULL) {
perror("main");
exit(EXIT_FAILURE);
}
int ch;
while (ch = fgetc(fp) != EOF) {
// do something
}
Pero de acuerdo con la página de manual a fgetc()
Si se produce un error de lectura, el indicador de error para la corriente de se establecerá, fgetc() devolverá EOF, [CX] y establecerá errno para indicar el error.
¿Necesito comprobar esto también? ¿Y cómo?
Necesita paréntesis alrededor de la asignación: 'while ((ch = fgetc (fp))!! = EOF)', pero con esa corrección en su lugar, es suficiente comprobar solo EOF. Obtendrá EOF por error o EOF real; si lo desea, puede desambiguar los dos casos después del ciclo. –