View Full Version : [C] warning con la fopen
ciao a tutti :)
ho questo pezzo di codice
FILE *fp;
char file_utenti[30]="utenti.dat";
if((fp=fopen(file_utenti,"r"))!=EOF)
e mi da un warning nella compilazione
warning: comparison between pointer and integer
come mai? come risolvo questo problema?
grazie in anticipo :)
stupido errore:
!=NULL e non !=EOF XD
Usa le API Posix sono 2 righe di codice ;).
open(), read(), write() ...
stefano_ba
29-03-2009, 11:24
if((fp=fopen(file_utenti,"r"))!=EOF)
Se non ricordo male l'operazione di assegnazione = ritorna sempre valore 1.
Secondo me sarebbe piu' corretto scrivere:
fp=fopen(file_utenti,"r");
if(fp!=EOF)
{
...
}
Ziosilvio
29-03-2009, 13:00
FILE *fp;
char file_utenti[30]="utenti.dat";
if((fp=fopen(file_utenti,"r"))!=EOF)
e mi da un warning nella compilazione
warning: comparison between pointer and integer
come mai?
EOF è una costante di tipo int.
Il risultato di fopen, invece, è un puntatore a FILE.
I due tipi sono diversi e non immediatamente confrontabili.
Oltretutto, fopen restituisce NULL in caso di errore nell'apertura del file.
Se non ricordo male l'operazione di assegnazione = ritorna sempre valore 1.
Ricordi male. Succede.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.