Come leggere un file di testo in c

Come leggere un file di testo in c
File di testo sono tra i tipi di file più utilizzati sui computer. Possono essere utilizzati per un'ampia varietà di compiti, come la memorizzazione di documenti di testo o i codici di origine del programma. Vengono salvati nel sistema con .TXT estensione. Mentre si lavora sul codice C, potrebbe essere necessario leggere un file di testo come parte del progetto o ottenere aiuto dal file di testo. Invece di tornare nella posizione per leggere un file di testo, è meglio leggerlo all'interno di un codice.

Questo articolo discute modi utili per leggere un file di testo nel linguaggio di programmazione C.

Leggi un file di testo in C

Esistono quattro metodi per leggere un file di testo in C, che sono.

  • fscanf () per leggere un file di testo
  • fgets () per leggere un file di testo
  • fgetc () per leggere un file di testo
  • Fread () per leggere un file di testo

Metodo 1: usando la funzione fscanf () per leggere un file di testo in c

IL fscanf () La funzione è una funzione di libreria standard che assume una serie di argomenti e li converte in valori che possono essere utilizzati dal programma. Trova una stringa di formato all'interno del file e restituisce una stringa di formato quando si legge dal file. La stringa di formato deve essere racchiusa tra citazioni ("") in modo che non vengano interpretati dal tuo programma come parte della propria sintassi.

IL fscanf () La funzione legge i dati nei luoghi forniti dagli elementi nell'elenco degli argomenti. Le voci della lista degli argomenti devono tutte indicare variabili i cui tipi corrispondono agli specificatori del tipo nella stringa di formattazione.

Fornisce EOF (fine del file) o il numero di variabili con valori assegnati a loro.

Diamo un'occhiata a un esempio per leggere un file di testo usando il fscanf () funzione:

#includere
int main ()

File* ptr = fopen ("file_.txt "," r ");
if (ptr == null)
printf ("non esiste tale file.");
restituzione 0;

char buf [100];
while (fscanf (ptr, "%s", buf) == 1)
printf ("%s \ n", buf);
restituzione 0;

In questo codice, fopen () La funzione viene utilizzata per aprire il file sotto la variabile puntatore PTR. fscanf () La funzione viene quindi utilizzata per leggere il file e quindi stampare il suo contenuto.

Produzione

Metodo 2: utilizzando la funzione Fread () per leggere un file di testo in C

I dati dal file vengono letti da Fread () metodo e memorizzato in un buffer. Per contare gli elementi vengono letti in un buffer di array da Fread () funzione dal flusso di input, che viene fornito come argomento funzione.

Quando il numero totale di elementi viene letto correttamente, viene restituito un oggetto size_t. Se questo valore è diverso dal valore specificato dal programma, si è verificato un errore o la fine del file.

#includere
int main ()

Char Buffer [33];
File * stream;
stream = fopen ("file_name.txt "," r ");
int count = fread (& buffer, sizeof (char), 33, flusso);
fclose (stream);
printf ("dati letti dal file: %s \ n", buffer);
printf ("Numero di elementi letti: %d", conteggio);
restituzione 0;

In questo codice, il fopen () La funzione viene utilizzata per aprire il file e quindi il Fread () La funzione viene quindi utilizzata per leggere il file e quindi stampare il suo contenuto. 33 mostra il numero di caratteri che leggerà dal file.

Produzione

Metodo 3: usando la funzione fGets () per leggere un file di testo in c

Con il fgets () funzione, una riga viene letta dal flusso specificato e memorizzata nella variabile stringa corrispondente. Quando vengono letti i caratteri (n-1), il carattere newline o la fine del file o qualunque cosa si verifichi prima, il programma finisce.Se la funzione ha esito positivo, viene restituita la stessa stringa. Il contenuto della stringa viene mantenuto in posizione e si verifica un puntatore nullo se la funzione colpisce la fine del file senza caratteri.

In caso di guasto, fornisce un puntatore nullo.

#includere
int main ()
File *fp;
Char Str [60];
fp = fopen ("file.txt "," r ");
if (fp == null)
perror ("errore nel file di apertura");
restituzione (-1);

if (fgets (STR, 100, FP)!= Null)
put (str);

fclose (fp);
restituzione (0);

In questo codice, file.TXT Il file è aperto da fopen () funzione e poi fgets () La funzione viene quindi utilizzata per leggere le stringhe nel file e quindi stamparle. 100 mostra il numero di stringhe che leggerà.

Produzione

Metodo 4: utilizzando la funzione fGetc () per leggere un file di testo in C

IL fgtec () La funzione viene utilizzata per leggere i caratteri uno per uno. La funzione restituisce quindi il codice ASCII del carattere che ha letto. Restituisce il personaggio che era presente sul posto indicato del file puntatore. Il puntatore del file passa quindi al carattere successivo. Se si verifica un errore o il puntatore raggiunge la fine del file, questa funzione restituisce un EOF (fine file).

#includere
int main ()

File *fp = fopen ("file.txt "," r ");
if (fp == null)
restituzione 0;
Fare
char c = fGetc (FP);
if (feof (fp))
rottura ;
printf ("%c", c);
while (1);
fclose (fp);
restituzione (0);

IL "file.TXT"Il file è aperto dal file fopen () funzione in questo codice sotto la variabile puntatore FP. I caratteri del file vengono quindi letti usando il fGetc () Metodo, che stampa i personaggi che sono stati letti.

Produzione

Conclusione

Leggere i file è una necessità per ogni utente di computer, e in particolare per uno sviluppatore, è importante che possa accedere ai file utilizzando il suo codice. Pertanto 4 metodi sono menzionati sopra nell'articolo per la lettura a file di testo usando la lingua C. fscanf () E Fread () vengono utilizzati per leggere i file in modo simile, con l'eccezione Fread () ci consente di specificare il numero di caratteri che l'utente desidera leggere, mentre fgets () viene utilizzato per leggere una riga file per riga e fGetc () viene utilizzato per leggere un carattere file per carattere.