Programmare in C – File di testo

I file di testo in linguaggio C sono facili da gestire e il meccanismo di funzionamento è semplice. Tutte le funzioni sui file di testo in C si trovano nella libreria stdio.

Quando si devono realizzare operazioni di Input/Output in un programma in C e si ha bisogno di una sola sorgente di input e di una di output, si può fare affidamento a stdin (standard input) e stdout (standard output). Si può usare se necessaria la ridirezione da linea di comando per ottenere l'input e l'output diversi da quelli standard di sistema. Ci sono sei differenti comandi di input/output nella libreria :

• prinft: stampa output formattato sullo standard output
• scanf: leggere input formattato sullo standard input
• puts: stampa una stringa sullo standard output
• gets: legge una stringa dallo standard input
• putc: stampa un carattere sullo standard output
• getc, getchar: legge un un carattere dallo standard input.

Il vantaggio dell'uso dei concetti di standard input e dello standard output è che sono veramente semplici da usare e la possibilità di ridirezione rende i comandi/le istruzioni di cui sopra potenti ed efficienti. Per esempio, si potrebbe voler creare un programma che legge dallo standard input e conta il numero di caratteri.

#include <stdio.h>
#include <string.h>

void main()
{
    char s[1000];
    int count=0;
     while (gets(s))
        count += strlen(s);
    printf("%d\n",count);
}

Provate a far eseguire questo codice. Il programma aspetta un input proveniente dallo standard input, quindi stampa alcune linee. Quando si è terminato l'input, premere CTRL-D per indicare al programma che si è terminato (in pratica si indica la fine del file). La funzione gets legge una linea alla volta finchè non trova eof, quindi restituisce il valore 0 in modo che il ciclo while venga terminato. Quando si preme CTRL-D, si può ottenere il numero di caratteri sullo standard output che di default è lo schermo.

Ora, supponiamo che si voglia contare il numero di caratteri in un file. Se si compila il programma in un eseguibile chiamato xxx, si può digitare a linea di comando

xxx < filename invece di accettare input dalla tastiera, il contenuto del file di testo chiamato filename sarà utilizzato e pertanto saranno contati i caratteri del file. Si può ottenere lo stesso risultato utilizzando le pipes.

cat < filename | xxx Si può anche ridirezionare l'output in un file: xxx < filename > out
Questo comando pone il conteggio dei caratteri prodotto dal programma in un file di testo chiamato out.

A volte, si deve utilizzare direttamente un file di testo. Per esempio, potrebbe essere necessario aprire un file specifico e leggerne il contenuto oppure scrivere su di esso. Un esempio più complesso potrebbe essere quello di dover creare qualcosa di simile ad un editor di testo, in cui i dati di configurazione devono essere salvati e recuperati in base a certi comandi. In questo caso, usare le funzioni seguenti, anch'esse nella libreria stdio.h permette di realizzare progetti complessi.
- fopen: apre un file di testo
- fclose: chiude un file di testo
- feof: individua il marcatore di fine file
- fprintf: stampa output formattato su di un file
- fscanf: legge input formattato da un file
- fputs: stampa una stringa su di un file
- fgets: legge una stringa da un file
- fputc: stampa un carattere su di un file
- fgetc: legge un carattere da un file

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend