C/File di testo: differenze tra le versioni

nessun oggetto della modifica
m (sostituzione tag obsoleti)
Nessun oggetto della modifica
Etichetta: Editor wikitesto 2017
 
La funzione <code>fgets()</code> permette di leggere una riga di testo di una data dimensione massima. Si osservi l'esempio seguente:
<sourcesyntaxhighlight lang="c">
...
char ca[100];
fgets (ca, 100, fp);
...
</syntaxhighlight>
</source>
In questo caso, viene letta una riga di testo di una dimensione massima di 99 caratteri, dal file rappresentato dal puntatore fp. Questa riga viene posta all'interno dell'array ca, con l'aggiunta di un carattere \0 finale. Questo fatto spiega il motivo per il quale il secondo parametro corrisponde a 100, mentre la dimensione massima della riga letta è di 99 caratteri. In pratica, l'array di destinazione è sempre una stringa, terminata correttamente.
 
Nello stesso modo funziona <code>fputs()</code>, che però richiede solo la stringa e il puntatore del file da scrivere. Dal momento che una stringa contiene già l'informazione della sua lunghezza perché possiede un carattere di conclusione, non è prevista l'indicazione della quantità di elementi da scrivere.
<sourcesyntaxhighlight lang="c">
...
char ca[100];
fputs (ca, fp);
...
</syntaxhighlight>
</source>
Seguono i modelli sintattici delle funzioni <code>fputs()</code> e <code>fgets()</code>, in forma di prototipi di funzione:
<sourcesyntaxhighlight lang="c">
char *fgets (char *stringa, int dimensione_max, FILE *stream);
int fputs (const char *stringa, FILE *stream);
</syntaxhighlight>
</source>
 
Se l'operazione di lettura riesce, <code>fgets()</code> restituisce un puntatore corrispondente alla stessa stringa (cioè l'array di caratteri di destinazione), altrimenti restituisce il puntatore nullo, NULL, per esempio quando è già stata raggiunta la fine del file.
136

contributi