Come leggere un file di testo e stampare tutte le stringhe in C

Come Leggere Un File Di Testo E Stampare Tutte Le Stringhe In C



Leggere un file di testo e stampare tutto stringhe è un compito chiave che viene spesso svolto dai programmatori C. È importante comprendere le basi di lettura UN file di testo in C e come stampa IL stringhe da esso prima di tentare questo compito.

La lettura di un file di testo e la stampa di tutte le stringhe in esso contenute verranno dimostrate utilizzando la programmazione in C in questo articolo.







Leggi un file di testo e stampa tutte le stringhe in C

Ci sono quattro funzioni per leggere un file di testo e stampare tutte le stringhe in C, che sono le seguenti:



Metodo 1: funzione fread()

I dati sono letto dal file e memorizzato in un buffer utilizzando la funzione C paura() . Per contare gli elementi in un buffer di array, il paura() Il metodo legge dal flusso di input fornito come parametro della funzione. Durante la lettura di ogni funzione di carattere, l'indicatore di posizione del file per il flusso di input specificato si sposta in avanti.



IL paura() metodo in C ha la sintassi.





size_t fread ( vuoto * array_buffer, dimensione_t misurare , conteggio size_t, FILE * file_stream )

Diamo un'occhiata ai parametri della funzione fread() in modo più dettagliato:



buffer dell'array: I dati sono temporaneamente conservati nel buffer di un computer, uno spazio di memoria. Questo argomento è un puntatore che fa riferimento alla posizione in memoria del buffer che conterrà i dati Leggere dal flusso di input.

misurare: Questo argomento indica la funzione di quanti byte di dati verranno letti dal flusso di input per ogni blocco.

contare: Specifica quanti caratteri verranno letti dal flusso di input di dati.

flusso_file: È un puntatore che fa riferimento a un oggetto FILE.

#include
#include
int principale ( ) {
FILE * file ;
buffer di caratteri [ 100 ] ;
file = aperto ( 'File_C.txt' , 'R' ) ;
Se ( file == NULLA ) {
printf ( 'Errore: impossibile aprire il file \N ' ) ;
ritorno 1 ;
}
int contare = paura ( & buffer, sizeof ( char ) , 100 , file ) ;
fclose ( file ) ;
printf ( 'I dati letti dal file sono: %s \N ' , respingente ) ;
printf ( 'Numero di elementi letti: %d' , contare ) ;
fclose ( file ) ;
ritorno 0 ;
}

In questo esempio, definiamo un buffer di array di caratteri di dimensione 100 prima di utilizzare apri() per aprire il file di testo C_File.txt in modalità lettura. Utilizzando un'istruzione if, determiniamo se il file è stato aperto correttamente. Il passo successivo è quello di leggere fino a 100 byte di dati dal file utilizzando paura() . Il buffer di destinazione, in questo caso l'array del buffer, è il primo parametro di paura(). Il secondo argomento, taglia di , determina la dimensione di ogni elemento da leggere mentre stiamo leggendo in caratteri . Il terzo input è la grandezza da leggere, che in questo caso è 100 . IL puntatore di file è il quarto parametro. Usiamo infine stampaf() per stampare i dati letti dal file e fchiudi() per chiudere il file. L'esecuzione di questo programma comporterebbe risultati come questo, se C_File.txt :

Produzione

Metodo 2: funzione fgets()

La lingua C fgets() Il metodo legge n caratteri dallo stream nella stringa str. IL fgets() Il metodo continua a leggere i caratteri dal flusso fino a quando (n-1) caratteri sono stati letti, è stato rilevato un carattere di nuova riga o è stata raggiunta la fine del file (EOF).

#include
int principale ( ) {
FILE * file ;
buffer di caratteri [ 100 ] ;
file = aperto ( 'File_C.txt' , 'R' ) ;
Se ( file == NULLA ) {
printf ( 'Errore: impossibile aprire il file \N ' ) ;
ritorno 1 ;
}
Mentre ( fgets ( respingente, 100 , file ) ) {
printf ( 'Stringa letta dal file: %s' , respingente ) ;
}
fclose ( file ) ;
ritorno 0 ;
}

Questo esempio usa apri() per aprire un file di testo chiamato C_File.txt in modalità di lettura dopo aver prima dichiarato un buffer di array di caratteri di dimensione 100 . Utilizzando un'istruzione if, determiniamo se il file è stato aperto correttamente. Successivamente, utilizziamo un ciclo while e fgets() per leggere righe di testo dal file utilizzando un puntatore di file. Usando stampaf() all'interno del ciclo, stampiamo ogni riga di testo. L'esecuzione di questo programma fornirebbe l'output:

Produzione

Metodo 3: funzione fscanf()

Un metodo di libreria standard chiamato fscanf() accetta un array di parametri e li trasforma in valori che l'applicazione può utilizzare. Mentre leggendo dal file , restituirà la stringa di formato al posto di qualsiasi cosa preveda di vedere all'interno. Per impedire al software di interpretare la stringa di formato come parte della propria sintassi, deve essere racchiusa tra virgolette ('').

#include
int principale ( ) {
FILE * file ;
int num1, num2, num3;
file = aperto ( 'File_C.txt' , 'R' ) ;
Se ( file == NULLA ) {
printf ( 'Errore: impossibile aprire il file \N ' ) ;
ritorno 1 ;
}
fscanf ( file , '%d %d %d' , & numero 1, & num2, & numero 3 ) ;
printf ( 'I numeri letti dal file sono: %d, %d, %d \N ' , num1, num2, num3 ) ;
fclose ( file ) ;
ritorno 0 ;
}

Questo esempio apre il file C_File.txt in modalità lettura dichiarando prima 3 variabili int, num1, num2 e num3. Utilizzando un'istruzione if, determiniamo se il file è stato aperto correttamente. Il passaggio successivo consiste nel leggere tre numeri dal file utilizzando fscanf() e il %D identificatore di formato. Le variabili num1, num2 e num3 sono dove vengono conservati i valori. Usiamo infine stampaf() per emettere i valori di queste variabili e fchiudi() per chiudere il file. L'esecuzione di questo programma comporterebbe i risultati mostrati di seguito:

Produzione

Metodo 4: funzione fgetc()

Un file può essere Leggere carattere per carattere usando il fgetc() funzione. Il codice ASCII per il carattere letto da questa funzione viene restituito da questa funzione. Viene restituito il carattere della posizione specificata del puntatore del file. Il carattere successivo viene letto dopo che il carattere è stato letto, in base al puntatore del file. Questo metodo restituisce un file EOF se il puntatore si trova alla fine del file o se c'è un problema.

#include
int principale ( ) {
FILE * file ;
carattere c;
file = aperto ( 'File_C.txt' , 'R' ) ;
Se ( file == NULLA ) {
printf ( 'Errore: impossibile aprire il file \N ' ) ;
ritorno 1 ;
}
Mentre ( ( c = fgetc ( file ) ) ! = FEF ) {
printf ( '%C' , C ) ;
}
fclose ( file ) ;
ritorno 0 ;
}

In questo caso, usiamo il apri() comando per aprire il file di testo C_File.txt in modalità lettura. Utilizzando un'istruzione if, determiniamo se il file è stato aperto correttamente. Successivamente, utilizziamo un ciclo while e fgetc() per leggere i caratteri dal file. Il carattere ricevuto dal file viene assegnato alla variabile C all'interno del ciclo prima di essere stampato utilizzando printf (). Il ciclo continua a funzionare fino al EOF (End of File) costante rileva la fine del file. L'esecuzione di questo programma otterrebbe i seguenti risultati, se C_File.txt contiene la parola 'Linuxint'.

Produzione

Conclusione

Utilizzando i passaggi descritti sopra, C può essere utilizzato per leggere un file di testo E stampa tutte le stringhe contiene. Inizia usando il apri() chiamata di sistema per aprire il file, seguita dall'uso di fscanf(), fread(), fgets(), fgetc() per leggere i dati. Successivamente, il file viene chiuso utilizzando fchiudi() e un ciclo for viene utilizzato per stampare le stringhe. Impiegando queste tecniche, C può essere utilizzato per aiutare a leggere e stampare i dati in modo efficiente.