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