Dubbio feof/fscanf
Salve a tutti,
ho da poco sostenuto lo scritto di informatica (programmazione in C) e la traccia richiedeva di leggere da un file di testo alcuni dati.
Per far ciò ho impostato un ciclo while e nella condizione ho inserito la feof per trovare la fine del file.
Nonostante sia perfettamente funzionante, la prof lo ha valutato come errore perchè, secondo lei, è meglio usare allo scopo la fscanf e verificare
se vi è o meno un EOF.
La motivazione è che se "in mezzo" al file si trova un EOF per qualche strano motivo, il metodo "feof" crea problemi.
Ma vorrei chiedervi, se si verifica una situazione del genere (abbastanza disgraziata aggiungerei
) lo stesso problema non si verifica anche
con il metodo della scanf?
Vi ringrazio
ho da poco sostenuto lo scritto di informatica (programmazione in C) e la traccia richiedeva di leggere da un file di testo alcuni dati.
Per far ciò ho impostato un ciclo while e nella condizione ho inserito la feof per trovare la fine del file.
Nonostante sia perfettamente funzionante, la prof lo ha valutato come errore perchè, secondo lei, è meglio usare allo scopo la fscanf e verificare
se vi è o meno un EOF.
La motivazione è che se "in mezzo" al file si trova un EOF per qualche strano motivo, il metodo "feof" crea problemi.
Ma vorrei chiedervi, se si verifica una situazione del genere (abbastanza disgraziata aggiungerei

con il metodo della scanf?
Vi ringrazio
Risposte
Ciao,
il codice come lo hai scritto?
i valori di ritorno di fscanf() li controlli, o li eviti in allegria?
cambia parecchio, la faccenda...
il codice come lo hai scritto?
i valori di ritorno di fscanf() li controlli, o li eviti in allegria?
cambia parecchio, la faccenda...
Ora non ho il codice sottomano, comunque il ciclo che ho fatto era del tipo
I valori di ritorno di fscanf mi pare di averli evitati in allegria..
while (!feof(fp)) { .. }
I valori di ritorno di fscanf mi pare di averli evitati in allegria..

allora è per quello che la tua docente ti ha detto che è sbagliato il codice.
feof(): http://digilander.libero.it/uzappi/C/li ... arerr.html
fscanf(): http://digilander.libero.it/uzappi/C/li ... scanf.html
vedi le differenze del valore di ritorno, cosa vedi?
feof(): http://digilander.libero.it/uzappi/C/li ... arerr.html
fscanf(): http://digilander.libero.it/uzappi/C/li ... scanf.html
vedi le differenze del valore di ritorno, cosa vedi?