Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Leggere e scrivere su file di testo con C++

Articolo scritto da Damiano Verda
Pagina 1 di 2

Spesso, ci si può trovare in condizione di interagire con un file come strumento di input o di output per i nostri programmi.

Per quanto riguarda l'utilizzo di file come input, pensiamo ad esempio a tutti quei casi in cui è necessario rielaborare in qualche modo un testo, ad esempio ordinarlo secondo un particolare criterio. O ancora alle situazioni in cui il programma da scrivere si inserisce a valle di un progetto che produce come risultato un file, che deve essere quindi letto per immagazzinare i risultati delle elaborazioni svolte fino a quel punto.

(L'articolo continua più sotto...)

Anche servirsi di un file come output è un'operazione molto comune, dato che consente di tenere traccia dei risultati ottenuti salvandoli su disco, consentendo quindi successive analisi e rielaborazioni, oltre a costituire una valvola di controllo per eventuali errori.

In questo articolo, ci concentreremo sugli strumenti che consentono di interagire con i file come sorgente e destinazione di dati, cioè come input e come output. Utilizzeremo uno dei linguaggi di programmazione più comuni, versatili ed efficaci, ovvero il C++.

Lettura da file

#include <fstream.h>

void main() 
{
  ifstream OpenFile("cpp-input.txt");
  char ch;
  while(!OpenFile.eof())
  {
    OpenFile.get(ch);
    cout << ch;
  }
  OpenFile.close();
}

Il progamma soprastante consente di leggere i dati contenuti in un file, un carattere alla volta. Ipotizzeremo infatti in questo contesto che si tratti di un file testuale, l'adattamento a un diverso tipo di dato risulta in ogni caso estremamente semplice e le considerazioni proposte hanno validità generale.

Esaminiamo le caratteristiche del programma. La prima riga (#include <fstream.h>) consente di utilizzare la libreria fstream, dedicata proprio all'interazione con i file.

La funzione main contiene il codice che viene eseguito una volta lanciato il programma. Le prime due righe, ovvero: ifstream OpenFile("cpp-input.txt") e char ch corrispondono alla dichiarazione di due variabili.

La variabile OpenFile, di tipo ifstream, rappresenta il file da cui verranno letti i dati, il cui nome ("cpp-input.txt") viene passato come parametro (assicuriamoci che il file da cui vengono letti i dati sia presente nella cartella del programma o comunque al percorso indicato, in caso contrario avremo un errore in fase di esecuzione) mentre la variabile ch, di tipo char (ovvero carattere) servirà per memorizzare il contenuto del file stesso, in questo caso un carattere alla volta.

L'istruzione while(!OpenFile.eof()) identifica un ciclo, ovvero una serie di operazioni da compiere ripetutamente fino a che non si verifica una determinata condizione, in questo caso fino a che il file non termina: ! indica infatti la negazione, mentre eof sta per "end of file", cioè "fine del file". L'istruzione può quindi essere letta come "fino a che non finisce il file...".

Le operazioni da compiere fino a che non termina la lettura sono comprese tra due parentesi graffe, si tratta di: OpenFile.get(ch) e cout << ch. Tramite la funzione get si memorizza il carattere corrente del file nella variabile ch, proseguendo nella lettura, mentre l'istruzione cout consente di stampare tale carattere a video, per verificare il corretto funzionamento del programma.

Una volta concluso il ciclo, non resta che chiudere lo stream, ovvero il flusso di dati, proveniente dal file in ingresso, tramite l'istruzione OpenFile.close().

Corsi
Corso E-Commerce con ASPCorso E-Commerce con ASP
Creare da zero un sito di commercio elettronico con ASP. A soli 45 €.
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 39 €.
Corso MS ExcelCorso MS Excel
Creare fogli elettronici e di calcolo. A soli 35 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122