Home
Accesso / Registrazione
 di 

Programmare in C - File di testo

Guida C

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

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 6 utenti e 35 visitatori collegati.

Ultimi Commenti