fgetc no identifica EOF [duplicate]

1 minuto de lectura

fgetc no identifica EOF duplicate
raxit

El programa a continuación funciona bien en varias variantes de Solaris/Linux, pero no en AIX. Sin embargo, si reemplazo while(c!=EOF) con while(c!=0xff) en AIX funciona completamente bien.

¿Alguna idea? Revisé la página de manual de fgetc en AIX, ¡y debería devolver la constante EOF!


#include <stdio.h>
#include<unistd.h>
#include <string.h>
int main() {
char c;
  FILE *fp;
  fp = fopen("a.txt", "r");
     c=fgetc(fp);
     while(c!=EOF)
        {
        c=fgetc(fp);
        printf("%d",c);
        }

  fclose(fp);
return 0;
}

  • Parece que AIX tiene caracteres sin firmar

    – Antti Haapala — Слава Україні

    25 de mayo de 2018 a las 7:46

fgetc no identifica EOF duplicate
coadicto

El valor de retorno de fgetc es int no char. Así que cambia

char c;

para

int c;

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad