Capire come funziona il simbolo EOF significa capire come funziona il file di input . In genere , il programmatore carica il file nel programma attraverso un puntatore al file . Utilizzando le librerie " stdio.h " , il programmatore può utilizzare un puntatore a file per fare riferimento a un file in memoria , e poi o leggere o scrivere sul file . Il seguente esempio mostra come dichiarare e utilizzare un puntatore a file :
# include " stdio.h "
int main ( ) {
FILE * fp ; //file puntatore
fp = fopen ( " c: \\ \\ file.txt " , " r" ) //apre " file.txt" in sola lettura , e usa fp per farvi riferimento
lettura da un file
il programmatore quindi legge dal file . Lei può fare questo usando la funzione " fgetc ( ) " , che sarà letta dal file un carattere alla volta. Il " fgetc ( ) " la funzione restituisce un valore intero , che può essere cambiato in un personaggio dal programmatore per stampare a schermo o per qualsiasi manipolazione è necessario:
int ch = fgetc ( fp) ;
printf ( " % c" , ( char) ch) ;
Internal File Puntatori
Quando la funzione " fgetc ( ) " si legge un personaggio , si muove un puntatore di file interno avanti di uno spazio. Ciò significa che, come un file viene letto dalla funzione , il file rimane sempre pronto per un'altra lettura. Come il puntatore del file interno funziona non è importante per il programmatore o la funzione . Ciò che è importante è che, come il puntatore del file si sposta in avanti durante le letture di successo , finirà per colpire la fine del file , ma non , ad esempio , continuare a leggere il file oltre le dimensioni del file
. alla fine del file
Quando il puntatore del file passa il carattere finale , la " fgetc ( ) " la funzione restituirà un valore intero negativo legato a una macro denominata "EOF ". Una macro è una ridefinizione di un valore in una forma più leggibile . Il programmatore può verificare la presenza di questo valore utilizzando la macro " EOF " . Se la funzione restituisce il valore , il programmatore può fermare la lettura del file ed evitare eventuali errori , come in questo esempio :
int c ;
while ( ( c = fgetc ( fp ) ) ! = EOF ) //se c contiene il valore EOF , il ciclo si interrompe la lettura
{
putchar ( c);
}
Programmazione © www.354353.com