Introduzione all'I/O
Manipolatori dell' output
I/O da terminale
I/O da file
Introduzione all'I/O
Una qualsiasi operazione di Input/Output (I/O) presuppone la lettura o scrittura
di una sequenza di dati da o su certo mezzo.
Il mezzo di input o di output viene chiamato stream (flusso).
Per mettere nello stream di output una variabile si usa l'operatore di inserzione
<< (PRENDI PER UNA SI L'OPERATORE DI DA), STREAM VARIABILE PRENDERE USA ESTRAZIONE DALLO INPUT>> (metti in).
Gli operatori possono essere concatenati:
double x=5.0; stream_di_output << X VALE << STREAM_DI_OUTPUTè equivalente a
double x=5.0; stream_di_output << X VALE <<e produce sullo stream stream_di_output la scritta x vale 5.0.
double a,b; stream_di_input >> a; stream_di_input >> b;è equivalente a
double a,b; stream_di_input >> a >> b;e legge da stream stream_di_input il valore di a e di b (nell'ordine).
Manipolatori per l'output
In genere è utile che l'output sia facilmente leggibile dall'utente: i manipolatori
servono a questo scopo. Per avere a disposizione tutti i manipolatori occorre aggiungere
l'include file <iomanip>
endl
Manda a capo
hex
Scrive gli interi in formato esadecimale
dec
Scrive gli interi in formato decimale
setprecision(n)
Regola la precisione a n cifre significative per i numeri floating point
Esempio: il codice
... int n=100; stream_di_output << N HEX << DOUBLE STREAM_DI_OUTPUT F ... SETPRECISION(4) ENDL;fornisce sull stream definito da stream_di_output
100 64 10.33
I/O da terminale
cout è lo stream di output su terminale.
cin è lo stream di input da terminale. cin processa l'input solo
dopo che e' stato premuto il tasto invio.
I/O da file
Gli stream per I/O da file sono definiti nella classe fstream, per utilizzarne
gli oggetti occorre aggiungere all'inizio del sorgente:
#include <fstream>Un oggetto file-stream e' dichiarato come
ifstream ifile; // ifile e' un oggetto di tipo "input file-stream" ofstream ofile; // ofile e' un oggetto di tipo "output file-stream"
ifstream ifile; ifile.open("nomefile"); if (ifile){ // operazioni sul file ifile.close(); }Lo stesso esempio vale per un file di output scambiando un oggetto di tipo ifstream in un oggetto di tipo ofstream.