Funzione libreria C - fgets ()

Descrizione

La funzione di libreria C. char *fgets(char *str, int n, FILE *stream) legge una riga dal flusso specificato e la memorizza nella stringa a cui punta str. Si ferma anche quando(n-1) vengono letti i caratteri, viene letto il carattere di nuova riga o viene raggiunta la fine del file, a seconda dell'evento che si verifica per primo.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione fgets ().

char *fgets(char *str, int n, FILE *stream)

Parametri

  • str - Questo è il puntatore a un array di caratteri in cui è memorizzata la stringa letta.

  • n- Questo è il numero massimo di caratteri da leggere (incluso il carattere nullo finale). Di solito, viene utilizzata la lunghezza dell'array passato come str.

  • stream - Questo è il puntatore a un oggetto FILE che identifica il flusso da cui vengono letti i caratteri.

Valore di ritorno

In caso di successo, la funzione restituisce lo stesso parametro str. Se viene rilevata la fine del file e non è stato letto alcun carattere, il contenuto di str rimane invariato e viene restituito un puntatore nullo.

Se si verifica un errore, viene restituito un puntatore nullo.

Esempio

L'esempio seguente mostra l'utilizzo della funzione fgets ().

#include <stdio.h>

int main () {
   FILE *fp;
   char str[60];

   /* opening file for reading */
   fp = fopen("file.txt" , "r");
   if(fp == NULL) {
      perror("Error opening file");
      return(-1);
   }
   if( fgets (str, 60, fp)!=NULL ) {
      /* writing content to stdout */
      puts(str);
   }
   fclose(fp);
   
   return(0);
}

Supponiamo di avere un file di testo file.txt, che ha il seguente contenuto. Questo file verrà utilizzato come input per il nostro programma di esempio -

We are in 2012

Ora, compiliamo ed eseguiamo il programma sopra che produrrà il seguente risultato:

We are in 2012