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 capire 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 che contiene saranno dimostrate utilizzando la programmazione C in questo articolo.

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

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

  • Fread ()
  • fgets ()
  • fscanf ()
  • fGetc ()

Metodo 1: funzione fread ()

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

IL Fread () Il metodo in C ha la sintassi.

size_t fread (void * array_buffer, size_t size, size_t count, file * file_stream)

Diamo un'occhiata ai parametri della funzione Fread () in più dettaglio:

Array Buffer: I dati vengono temporaneamente tenuti nel buffer di un computer, uno spazio di memoria. Questo argomento è un puntatore che si riferisce al luogo 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 ciascun blocco.

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

file_stream: È un puntatore che si riferisce a un oggetto file.

#includere
#includere
int main ()
File *file;
Char Buffer [100];
file = fopen ("c_file.txt "," r ");
if (file == null)
printf ("errore: impossibile aprire file \ n");
Ritorno 1;

int count = fread (& buffer, sizeof (char), 100, file);
fclose (file);
printf ("dati letti dal file è: %s \ n", buffer);
printf ("Numero di elementi letti: %d", conteggio);
fclose (file);
restituzione 0;

In questo esempio, definiamo un tampone di array di caratteri di dimensioni 100 prima di utilizzare fopen () Per aprire il file di testo C_file.TXT in modalità lettura. Usando un'istruzione IF, determiniamo se il file è stato aperto correttamente. Il passaggio seguente è leggere fino a 100 byte di dati dal file utilizzando Fread (). Il buffer target, in questo caso l'array buffer, è il primo parametro a Fread (). Il secondo argomento, taglia di, determina le dimensioni di ciascun elemento da leggere mentre stiamo leggendo nei caratteri. Il terzo input è la quantità da leggere, che in questo caso lo è 100. IL Puntatore del file è il quarto parametro. Infine, usiamo printf () Per stampare i dati letto dal file e fclose () 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 dal flusso nella stringa STR. IL fgets () Il metodo continua a leggere i caratteri dal flusso fino a (N-1) I personaggi sono stati letti, è stato rilevato un personaggio newline o è stato raggiunto la fine del file (EOF).

#includere
int main ()
File *file;
Char Buffer [100];
file = fopen ("c_file.txt "," r ");
if (file == null)
printf ("errore: impossibile aprire file \ n");
Ritorno 1;

while (fgets (buffer, 100, file))
printf ("stringa leggi dal file: %s", buffer);

fclose (file);
restituzione 0;

Questo esempio usa fopen () Per aprire un file di testo chiamato C_file.TXT in modalità lettura dopo aver dichiarato prima un buffer di array di caratteri di dimensioni 100. Usando un'istruzione IF, determiniamo se il file è stato aperto correttamente. Dopodiché, impieghiamo un po 'di loop e fgets () per leggere righe di testo dal file usando un puntatore del file. Usando printf () All'interno del ciclo, stampiamo ogni riga di testo. L'esecuzione di questo programma fornirebbe l'output:

Produzione

Metodo 3: funzione fscanf ()

Un metodo della libreria standard chiamato fscanf () accetta una serie di parametri e li trasforma in valori che l'applicazione può utilizzare. Mentre Leggere dal file, restituirà la stringa di formato al posto di tutto ciò che prevede di vedere dentro. Per impedire al tuo software di interpretare la stringa di formato come parte della propria sintassi, deve essere circondato con citazioni ("").

#includere
int main ()
File *file;
int Num1, Num2, Num3;
file = fopen ("c_file.txt "," r ");
if (file == null)
printf ("errore: impossibile aprire file \ n");
Ritorno 1;

fscanf (file, " %d %d %d", & num1, & num2, & num3);
printf ("I numeri letto dal file sono: %d, %d, %d \ n", num1, num2, num3);
fclose (file);
restituzione 0;

Questo esempio apre il file C_file.TXT In modalità di lettura dichiarando prima 3 variabili int, num1, num2 e num3. Usando un'istruzione IF, determiniamo se il file è stato aperto correttamente. Il passaggio seguente è leggere tre numeri dal file utilizzando fscanf () e il %D Specificatore di formato. Le variabili NUM1, NUM2 e NUM3 sono dove vengono mantenuti i valori. Infine, usiamo printf () Per produrre i valori di queste variabili e fclose () 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 personaggio usando il fGetc () funzione. Il codice ASCII per il carattere che legge questa funzione viene restituito da questa funzione. Il carattere dalla posizione specificata del puntatore del file viene restituito. Il personaggio seguente viene letto una volta letto il personaggio, secondo il puntatore del file. Questo metodo restituisce un file EOF se il puntatore è alla fine del file o se c'è un problema.

#includere
int main ()
File *file;
Char C;
file = fopen ("c_file.txt "," r ");
if (file == null)
printf ("errore: impossibile aprire file \ n");
Ritorno 1;

while ((c = fGetc (file)) != Eof)
printf ("%c", c);

fclose (file);
restituzione 0;

In questo caso, usiamo il fopen () comando per aprire il file di testo C_file.TXT in modalità lettura. Usando un'istruzione IF, determiniamo se il file è stato aperto correttamente. Dopodiché, impieghiamo un po 'di loop e fGetc () per leggere i caratteri dal file. Il carattere ricevuto dal file è assegnato alla variabile C All'interno del ciclo prima di essere stampato usando printf (). Il ciclo continua a funzionare fino al Eof (Fine del file) Costante rileva la fine del file. L'esecuzione di questo programma otterrebbe i seguenti risultati, se C_file.TXT contiene la parola "Linuxhint".

Produzione

Conclusione

Usando i passaggi descritti sopra, C può essere utilizzato Leggi un file di testo E Stampa tutte le stringhe contiene. Inizia usando il fopen () chiamata di sistema per aprire il file, seguito dall'uso di fscanf (), fread (), fgets (), fGetc () per leggere i dati. Successivamente, il file viene chiuso utilizzando fclose () e un ciclo per stampare le corde. Impiegando queste tecniche, C può essere utilizzato per aiutare a leggere e stampare i dati in modo efficiente.