Laboratorio di Algoritmi e Strutture Dati 2001/02 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laboratorio di Algoritmi e Strutture Dati 2001/02 1"

Transcript

1 Lezione 16 in C++ Il linguaggio C++ non prevede istruzioni specifiche per gestire le operazioni di input ed output di un programma L input e l output può essere gestito attraverso librerie progettate in C++ La libreria iostream è stata identificata come la libreria standard del C++ è presente in tutti i compilatori Volendo, l utente può utilizzare librerie differenti (per esempio stdio) 1 Struttura di una libreria di I/O La libreria che deve gestire l input/output di un programma deve svolgere un duplice ruolo deve interfacciarsi con l utente possibilità di definire operatori di input/output di alto livello per oggetti complessi deve interfacciarsi con il sistema operativo necessità di tradurre ogni operazione di input/output in una sequenza di passi elementari che siano comprensibili al sistema operativo Flusso di Dati In C++ il mondo esterno al programma è visto come una sequenza infinita di informazioni elementari (char) La sequenza di informazioni è vista come un flusso (stream) di dati che scorre i dati scorrono e non possono essere recuperati dopo che sono passati è possibile estrarre informazioni elementari dal flusso (input) è possibile inserire informazioni elementari nel flusso (output) Le funzioni della libreria devono convertire l input/output di un oggetto complesso in una sequenza di caratteri da immettere/estrarre da un flusso di dati 2 3 Organizzazione di iostream Classe istream Interfaccia con il sistema operativo Interfaccia con l utente istream ios iostream hasa ostream streambuf La classe istream rappresenta un flusso di input standard (la tastiera) cin è una variabile di tipo istream definita in iostream.h L interfaccia pubblica della classe istream contiene tutti gli operatori che consentono di effettuare l input di oggetti di tipo predefinito tramite l operatore >> La classe contiene anche metodi che consentono di avere un controllo più preciso sulla gestione del flusso di input /02 1

2 Operatore di Estrazione della Classe istream Altri Metodi di Lettura typedef istream& (* imanip)(istream&); istream& operator>>(char*); istream& operator>>(char&); istream& operator>>(int&); istream& operator>>(float&); istream& operator>>( imanip func) { return (*func)(*this); } istream& operator>>(streambuf*); Una stringa è una sequenza di caratteri preceduta e seguita da spazi L operatore >> non legge gli spazi istream& get(char* ptr, int len, char delim = \n ); istream& get(char&); istream& getline(char*, int, char); istream& get(streambuf& sb, char delim = \n ); istream& read(char*, streamsize); istream& gets(char** s, char delim = \n ); get e read leggono anche gli spazi 6 7 Controllo Caratteri Estratti da istream Metodi di controllo del Flusso della Classe istream L interfaccia pubblica di istream fornisce una serie di metodi per controllare il comportamento del flusso sapere quanti caratteri sono stati letti nell ultima operazione rispedire indietro nel flusso un carattere non voluto ignorare una serie di caratteri presenti nel flusso di input verificare il valore del prossimo carattere del flusso senza estrarlo _IO_size_t _gcount; istream() { _gcount = 0; } istream(streambuf* sb, ostream* tied = NULL); _IO_size_t gcount(); int peek(); istream& putback(char); istream& unget(); istream& ignore(int n, int delim = EOF); 8 9 Classe ostream Classe ostream La classe ostream rappresenta un flusso di output standard (il terminale) cout, cerr, clog sono variabili di tipo ostream definite in iostream.h L interfaccia pubblica della classe ostream contiene i metodi che consentono di effettuare l output di oggetti di tipo predefinito tramite l operatore << La classe contiene anche metodi che consentono di avere un controllo più preciso sulla gestione del flusso di output 10 typedef osteam& (* omanip)(ostream&); class ostream : virtual public ios { ostream& operator<<(const char*); ostream& operator<<(const void*); ostream& operator<<(char); ostream& operator<<(int); ostream& operator<<(float); ostream& operator<<( omanip func) { return (*func)(*this); } ostream& operator>>(streambuf*); /02 2

3 Altri Metodi della Classe ostream Manipolatori di Flussi class ostream : virtual public ios { ostream& put(char); ostream& write(const char*, streamsize); ostream& flush(); ostream() {} ostream(streambuf* sb, ostream* tied = NULL); Un manipolatore di flusso è una funzione che prende in input un flusso e restituisce un flusso la funzione effettua delle operazioni sul flusso le classi istream e ostream consentono di passare il nome di un manipolatore come secondo argomento agli operatori di inserimento ed estrazione I manipolatori di flusso dichiarati in iostream.h sono ostream& flush(ostream&); ostream& endl(ostream&); ostream& ends(ostream&); istream& ws(istream&); Bufferizzato Stato di un Flusso Lo standard output è bufferizzato tutti i dati che il programma immette in cout non vengono direttamente inseriti nel flusso ma parcheggiati in un buffer quando il programma invia il comando di svuotamento del buffer tutti i dati parcheggiati vengono immessi nel flusso di output il comando di svuotamento del buffer è \n (endl) Anche l input da tastiera è bufferizzato i dati digitati non sono visibili al programma fino a quando non viene svuotato il buffer della tastiera (premendo invio) è possibile rendere l input da tastiera non bufferizzato Ogni flusso ha uno stato associato lo stato del flusso consente di individuare situazioni di errore per controllare se le operazioni sul flusso sono state eseguite correttamente basta controllare lo stato del flusso Gli stati di un flusso sono good (operazione eseguita correttamente) eof (è stato individuato il segnale di end of file) fail (è stata eseuita un operazione scorretta) bad (è stata eseguita un operazione che ha corrotto il flusso) Stato di un Flusso Formattazione dell Output Lo stato di un flusso può essere verificato attraverso metodi di accesso che consentono di leggere il valore della variabile stato class ios { enum io_state {goodbit, eofbit, failbit, badbit int good() const; int eof() const; int fail() const; int bad() const; void clear(io_state); La formattazione dell output definisce delle regole secondo le quali gli oggetti complessi devono essere trasformati in sequenze di caratteri la formattazione contribuisce a definire l aspetto esteriore dei dati forniti dal programma ampiezza dei campi precisione della rappresentazione dei valori decimali caratteri di riempimento legame tra flussi tutti i dati ed i metodi che servono a definire e modificare lo stato del formato dell output sono contenuti nella classe ios /02 3

4 Classe ios Manipolatori parametrizzati class ios { int width(int); int width() const; char fill(char); char fill() const; int precision(int); int precision() const; ostream* tie(ostream*); ostream* tie() const; long flags(long); long flags() const; long setf(long, long); long setf() const; long unsetf(long); Per modificare la formattazione dell output conviene utilizzare i manipolatori piuttosto che operare direttamente sui flag 18 La classe iostream consente di scrivere istruzioni del tipo cout << x << flush << y << endl; cout << setw(5) << x << y << endl; La funzione setw(int) non corrisponde alla definizione di omanip contenuta in iostream.h La libreria definisce un template di classe che consente di definire manipolatori che prendono diversi tipi di argomenti e definisce operatori << e >> per questi template 19 Template di manipolatore Altri Tipi di Flussi template<class T> class omanip { friend ostream& operator<<(ostream&, const omanip<t>&); ostream& (*_f)(ostream&, T); T _a; omanip(ostream& (*f)(ostream&, T), T); template<class T> inline ostream& operator<<(ostream& o, const omanip<t>& m) { return (*m._f)(o, m._a); } Il flusso da cui un programma può prelevare informazioni o su cui può immettere informazioni può essere di diversa natura standard input ed output file stringhe il compilatore vede sempre il mondo come un flusso di dati elementari a seconda del tipo di flusso cambia il comportamento del buffer che si interfaccia con il sistema operativo Derivazioni da iostream Flussi su file strstreambase istream istrstream ostrstream strstream ios iostream hasa ostrea m ifstream streambuf fstreambase ofstream fstream Le classi che rappresentano flussi da file sono derivate da istream e ostream tutte le operazioni di inserimento ed estrazione dal flusso sono ereditate Le nuove classi devono avere specifici metodi per aprire e chiudere un flusso muoversi all interno del flusso stabilire regole di spostamento nel flusso /02 4

5 Classe ifstream Classe ofstream class ifstream : public fstreambase, public istream { ifstream(const char* name, int mode, int prot); void open(const char*, int, int); void close(); La classe fstreambase è derivata da ios e serve a mantenere tutte le informazioni relative al file legato al flusso ed al buffer che interfaccia il flusso Le modalità di apertura di un file sono enum ios::open_mode { in, out, ate, append, trunc, nocreate, noreplace, binary class ofstream : public fstreambase, public ostream { ofstream(const char* name, int mode, int prot); void open(const char*, int, int); void close(); Flussi su Stringhe Spostamenti in un flusso class strstreambase : virtual public ios { La classe strstreambase è derivata da ios e serve a mantenere tutte le informazioni relative al file legato ad una stringa ed al buffer che interfaccia il flusso class istrstream : public strstreambase, public istream { class ostrstream : public strstreambase, public istream { 26 Se il flusso è legato ad un file o ad una stringa ha senso parlare di spostamento all interno del flusso Le operazioni di spostamento sono realizzate da metodi delle classi istream e ostream istream& seekg(streampos); istream& seekg(streamoff, seek_dir); streampos tellg(); Analoghe funzioni per ostream, ma i nomi terminano con p 27 Spostamenti in un flusso Esistono due funzioni seek per spostarsi in un flusso spostamento assoluto indica su quale posizione del flusso bisogna spostarsi spostamento relativo indica di quante posizioni ci si deve spostare da un punto di riferimento I possibili punti di riferimento sono enum ios::seek_dir{ beg, cur, end /02 5

Input/Output. Input/Output. Lezione 16

Input/Output. Input/Output. Lezione 16 Input/Output Lezione 16 Input/Output in C++ Il linguaggio C++ non prevede istruzioni specifiche per gestire le operazioni di input ed output di un programma L input e l output può essere gestito attraverso

Dettagli

Ingresso ed Uscita(1)

Ingresso ed Uscita(1) Ingresso ed Uscita(1) Un flusso (stream) corrisponde ad un istanza di una classe la cui parte pubblica contiene le operazioni necessarie e la parte privata le strutture dati (tra cui un buffer per memorizzare

Dettagli

Input / Output attraverso stream. I/O in C vs. I/O in C++

Input / Output attraverso stream. I/O in C vs. I/O in C++ Alessio Bechini - Corso di - Input / Output attraverso stream (anno accademico 2002-2003) Utilizzo di stream per I/O I/O in C vs. I/O in C++ La libreria C standard per l I/O viene acceduta con stdio.h

Dettagli

Gli stream. ios ostream. istream. iostream

Gli stream. ios ostream. istream. iostream I/O da FILE Gli stream Alla base delle operazioni di I/O, in C++, sta il concetto di stream (flusso) di byte tra la memoria principale ed i dispositivi di input (la tastiera, i file di sola lettura) e

Dettagli

Concetto di stream. c i a o \0. c i a o \0. c i a o \0

Concetto di stream. c i a o \0. c i a o \0. c i a o \0 Concetto di stream Uno stream è un flusso di byte che permette al programma di comunicare con l esterno (es. con periferiche di input/output) c i a o \0 c i a o \0 c i a o \0 Stream di uscita standard

Dettagli

Informatica e Laboratorio di Programmazione C++ stream Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Informatica e Laboratorio di Programmazione C++ stream Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione Informatica e Laboratorio di Programmazione C++ stream Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione stream o l input/output del C++ è basato sugli stream o gli stream sono

Dettagli

Gli stream Classi, oggetti e librerie per l I/O cout, cin I manipolatori di stream, la libreria <iomanip> I flag di formattazione Gerarchia di dati

Gli stream Classi, oggetti e librerie per l I/O cout, cin I manipolatori di stream, la libreria <iomanip> I flag di formattazione Gerarchia di dati I/O da FILE Indice Gli stream Classi, oggetti e librerie per l I/O cout, cin I manipolatori di stream, la libreria I flag di formattazione Gerarchia di dati Creazione di file Apertura di file

Dettagli

Introduzione al C++ Parte 2

Introduzione al C++ Parte 2 Introduzione al C++ Parte 2 Sommario Le differenze fra C e C++ il qualificatore const i namespace gli stream Evitare modifiche accidentali Il qualificatore const indica che la variabile non può più essere

Dettagli

Classi, oggetti e librerie per l'i/o

Classi, oggetti e librerie per l'i/o I/O da FILE Indice Gli stream Classi, oggetti e librerie per l I/O cout, cin I manipolatori di stream, la libreria I flag di formattazione Gerarchia di dati Creazione di file Apertura di file

Dettagli

Fondamenti di Informatica 2008 corso prof. A. Picariello. Operazioni sui FILE in C++

Fondamenti di Informatica 2008 corso prof. A. Picariello. Operazioni sui FILE in C++ Fondamenti di Informatica 2008 corso prof. A. Picariello Operazioni sui FILE in C++ Librerie di I/O per la gestione dei FILE Il C++ consente di utilizzare le librerie standard di I/O del C mette anche

Dettagli

Uno stream rappresenta un flusso di dati da cui e' possibile

Uno stream rappresenta un flusso di dati da cui e' possibile L'I/O in C++ e' basato sul concetto di stream. Uno stream rappresenta un flusso di dati da cui e' possibile prelevare caratteri (input stream) inserire caratteri (output stream) I vari tipi di stream sono

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Gli stream in C++ Laboratorio di Informatica 8. Gestione I/O e file in C++ Corso di Laurea in Ingegneria Elettronica e Telecomunicazioni A.A. 2013-2014 2 Semestre Prof. Giovanni Pascoschi stream è un astrazione

Dettagli

Gestione dei file di dati

Gestione dei file di dati Gestione dei file di dati 1. Le classi di input/output Il linguaggio C++ non dispone di proprie istruzioni per la gestione dell interazione con l utente. Si appoggia infatti su appositi comandi scritti

Dettagli

Standard Input e Standard Output

Standard Input e Standard Output Istruzioni di I/O Standard Input e Standard Output Il C++ utilizza i concetti di standard input e standard output rispettivamente come astrazione di un canale per l ingresso e per l uscita dei dati In

Dettagli

INFORMATICA File di testo in C Roberta Gerboni

INFORMATICA File di testo in C Roberta Gerboni 2018 - Roberta Gerboni File di testo in C++ Il linguaggio C++ mette a disposizione le seguenti classi per operare sui file (è necessario includere nel programma l header ), consentendo tipo di

Dettagli

Fondamenti di Informatica II 24. Gestione I/O e File in C++

Fondamenti di Informatica II 24. Gestione I/O e File in C++ Gli stream in C++ stream è un astrazione che rappresenta un flusso di dati che scorre tra una sorgente e una destinazione idea di Stroustrup : una sequenza di caratteri Fondamenti di Informatica II 24.

Dettagli

Corso di Informatica A.A

Corso di Informatica A.A Corso di Informatica A.A. 2009-2010 Lezione 13 Corso di Informatica 2009-2010 Lezione 13 1 Input/output da file Stream Si definisce stream una sequenza di bytes di dati che può essere in ingresso (input

Dettagli

Cosa serve per cominciare?

Cosa serve per cominciare? Cosa serve per cominciare? La linea di comando Il notepad (o equivalente) Saper scrivere qualcosa a video da programma risultato dell elaborazione elaborazione Ma come si fa?! 1 Input / Output L'immissione

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali

Dettagli

Libreria Standard del C++

Libreria Standard del C++ Libreria Standard del C++ La Libreria Standard 1 del C++ mette a disposizione, per l'esecuzione delle operazioni di inputoutput, un insieme di classi, funzioni e oggetti globali (tutti definiti nel namespace

Dettagli

Corso di Fondamenti di Informatica Tipi strutturati: Stringhe

Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Anno Accademico Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri

Dettagli

Introduzione alla programmazione in linguaggio C

Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008

Dettagli

ciclo di vita della soluzione (informatica) di un problema

ciclo di vita della soluzione (informatica) di un problema Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione I Tatiana Zolo zolo@cs.unipr.it 1 L ORGANIZZAZIONE DEL COMPUTER Unità di input: sezione ricevente. dispositivi di input Ò ÓÖÑ Þ ÓÒ altre unità per l elaborazione.

Dettagli

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

IL CONCETTO DI FILE. È illecito operare oltre la fine del file. IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni

Dettagli

Soluzione del 15 febbraio 2016

Soluzione del 15 febbraio 2016 Soluzione del 15 febbraio 2016 Problema 1 Un programma che effettua quanto richiesto, senza alcuna pretesa da parte di chi l avesse scritto, potrebbe essere il seguente: # include # include

Dettagli

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

File. Unità 8. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

File. Unità 8. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Corso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche

Corso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da ambo le parti. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Ho raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero

Ho raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero Stato di uno stream Uno stream possiede uno stato, che può essere corretto o errato. Quando lo stream è in stato di errore, non posso utilizzarlo. In lettura: Apertura di un file che non esiste X Ho raggiunto

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipo Stringa G. Mecca M. Samela Università della Basilicata Tipo Stringa >> Sommario Sommario Generalità del Tipo Stringa in C++ Operazioni sulle Stringhe Lettura

Dettagli

Ereditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Ereditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 4 Lettura e Stampa dei Dati versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione I Tatiana Zolo zolo@cs.unipr.it 1 L ORGANIZZAZIONE DEL COMPUTER Unità di input: sezione ricevente. dispositivi di input altre unità per l elaborazione. ORGANIZZAZIONE

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Le Stringhe versione 2.1 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it Università

Dettagli

Introduzione C++ Il compilatore. La compilazione in g++ Introduzione a C, C++ e Java. C++ C Java 1977 C 1986 C++ Compilatori Librerie Usare oggetti

Introduzione C++ Il compilatore. La compilazione in g++ Introduzione a C, C++ e Java. C++ C Java 1977 C 1986 C++ Compilatori Librerie Usare oggetti Introduzione a C, C++ e Java Introduzione C++ Compilatori Librerie Usare oggetti 1977 C 1986 C++ a better C con estensioni agli oggetti oggi uno standard industriale 1994 Java C ++ -- C++ C Java programmazione

Dettagli

ingresso/uscita da file

ingresso/uscita da file ingresso/uscita da file fino ad ora: il programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti al volo dall utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Introduzione C++ Compilatori Librerie Usare oggetti. Introduzione a C, C++ e Java

Introduzione C++ Compilatori Librerie Usare oggetti. Introduzione a C, C++ e Java Introduzione C++ Compilatori Librerie Usare oggetti Introduzione a C, C++ e Java 1977 C 1986 C++ a better C con estensioni agli oggetti oggi uno standard industriale 1994 Java C ++ -- C++ C Java programmazione

Dettagli

Introduzione C++ Compilatori Librerie Usare oggetti

Introduzione C++ Compilatori Librerie Usare oggetti Introduzione C++ Compilatori Librerie Usare oggetti Introduzione a C, C++ e Java 1977 C 1986 C++ a better C con estensioni agli oggetti oggi uno standard industriale 1994 Java C ++ -- C++ C Java programmazione

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

INPUT/OUTPUT. L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura

INPUT/OUTPUT. L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura C non ha istruzioni predefinite per l'input/output In ogni versione

Dettagli

Assegnazione di una variabile

Assegnazione di una variabile Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile

Dettagli

Il linguaggio C. Breve panoramica su stdio.h

Il linguaggio C. Breve panoramica su stdio.h Il linguaggio C Breve panoramica su stdio.h 1 Input/Output: stdio.h Contiene definizioni di costanti legate all I/O es. EOF (end of file) #define EOF (-1) valore restituito alla fine di un file Contiene

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

Dettagli

Input/Output di numeri

Input/Output di numeri Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include

Dettagli

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione

Dettagli

File binari e file di testo

File binari e file di testo I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file

Dettagli

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007 Files in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Sintesi Motivazioni Definizione di file in C++ Un esempio Uso dei file Esempi Esercizi Motivazioni il programma in esecuzione legge (sequenzialmente)

Dettagli

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++ Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Il primo programma C++

Il primo programma C++ Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida

Dettagli

Operazioni di lettura/scrittura

Operazioni di lettura/scrittura Funzioni di I/O Operazioni di lettura/scrittura C++ fornisce numerose funzioni per leggere da uno stream di input (come cin) o scrivere su uno stream di output. Lettura: >>, getline, get, ignore etc. Scrittura:

Dettagli

L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura

L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura C non ha istruzioni i ipredefinite it per l'input/output t t In ogni

Dettagli

Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott.

Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott. Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario

Dettagli

Text files, streams. I file che ci interessano sono file di testo. anche se, logicamente, contengono numeri o altro

Text files, streams. I file che ci interessano sono file di testo. anche se, logicamente, contengono numeri o altro Text files, streams I file che ci interessano sono file di testo anche se, logicamente, contengono numeri o altro In C/C++ ci sono anche i file binari, ma li ignoriamo file di testo = ASCII file = successione

Dettagli

Le classi. Classi derivate

Le classi. Classi derivate Classi derivate È possibile esprimere proprietà comuni tra le classi? I concetti che sottendono alle definizioni delle classi, sono in relazione tra loro o sono in comune? struct studente { string name;

Dettagli

Ingresso ed Uscita in C. Informatica 1 / 15

Ingresso ed Uscita in C. Informatica 1 / 15 Ingresso ed Uscita in C Informatica 1 / 15 Input e Output in C Linguaggio C: progettato per essere semplice e con poche istruzioni Non esistono istruzioni di ingresso / uscita (I/O)!!! Ingresso ed uscita

Dettagli

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del

Dettagli

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno. Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere

Dettagli

Gestione dei File. Credits Prof. Campi

Gestione dei File. Credits Prof. Campi Gestione dei File Credits Prof. Campi 1 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi Si usano dall'interno dei programmi Realizzano la persistenza dei dati cioè

Dettagli

INPUT E OUTPUT DI VALORI NUMERICI

INPUT E OUTPUT DI VALORI NUMERICI INPUT E OUTPUT DI VALORI NUMERICI FUNZIONI DI I/O PER NUMERI Per utilizzare le funzioni di Input/Output bisogna includere il file di intestazione (header file) denominato contiene la

Dettagli

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout

Dettagli

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come

Dettagli

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C Sommario Introduzione... xv Organizzazione del volume... xv Argomenti...xvi Domande...xvi Verifiche...xvi Domande e risposte...xvi Esercizi...xvi Non è richiesta alcuna precedente esperienza di programmazione...

Dettagli

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, A. Pennisi, S. Peluso, S. Salza, C. Ciccotelli Sommario Input/Output

Dettagli

I/O INTERATTIVO. scanf: quello che è indispensabile sapere printf: quello che è utile sapere

I/O INTERATTIVO. scanf: quello che è indispensabile sapere printf: quello che è utile sapere I/O INTERATTIVO scanf: quello che è indispensabile sapere printf: quello che è utile sapere Input da tastiera Funzioni disponibili (tra le altre): scanf getchar Schema di funzionamento Tastiera Sistema

Dettagli

Premessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.

Premessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1. Input /output e gestione dei file Premessa Iniziamo la lezione dicendo subito che per INPUT/OUTPUT si intende l insieme delle operazioni di ingresso ed uscita, ossia lo scambio di informazioni tra il programma

Dettagli

Informazioni Utili. Strumenti Utilizzati. Creazione e gestione di un progetto. Fondamenti di Informatica L-B (L-Z) Esercitazioni

Informazioni Utili. Strumenti Utilizzati. Creazione e gestione di un progetto. Fondamenti di Informatica L-B (L-Z) Esercitazioni Informazioni Utili Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Orario delle Esercitazioni Lunedì 14-16 Gruppo L Q Martedì 16-18

Dettagli

La programmazione Orientata agli Oggetti: OOP

La programmazione Orientata agli Oggetti: OOP La programmazione Orientata agli Oggetti: OOP Il modo di pensare per categorie è tipico dell uomo: tutti noi tentiamo di organizzare le conoscenze classificandole ed affrontiamo lo studio dei problemi

Dettagli

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura

Dettagli

Sommario PREFAZIONE... XI CAPITOLO 1: INTRODUZIONE: I COMPUTER, LA PROGRAMMAZIONE E IL C

Sommario PREFAZIONE... XI CAPITOLO 1: INTRODUZIONE: I COMPUTER, LA PROGRAMMAZIONE E IL C Sommario PREFAZIONE... XI Lo scopo di questo libro... xi Le sezioni Pensare in termini di oggetti... xii Il CD-ROM... xiv La metodologia di insegnamento... xiv L apprendimento attraverso il codice... xiv

Dettagli

FileInputStream read() read(byte[]) readint() DataInputStream FileInputStream EOFException

FileInputStream read() read(byte[]) readint() DataInputStream FileInputStream EOFException ESERCITAZIONE 9 I/O Esercizio 1 Lettura da file binario Se gli interi letti appartengono a [-5;5] scrittura su un altro file binario Altrimenti sollevare una eccezione la quale stampa a video un messaggio

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018 Esercitazioni di Fondamenti di Informatica - Lez. 9 /1/018 Esercizi sulla gestione dei file in C Il codice degli esercizi e contenuto nella cartella parte1 1. Creare una funzione C che legga tutto cio

Dettagli

I files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto

I files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto C I files di dati I files (archivi) Files di programmi sono solo gestiti dal compilatore C Files di dati Possono essere creati, aggiornati, letti, scritti da programmi C Servono per conservare dati su

Dettagli

Fondamenti di Informatica Ing. Biomedica

Fondamenti di Informatica Ing. Biomedica Fondamenti di Informatica Ing. Biomedica Esercitazione n.9 Stringhe & Algoritmi di ordinamento Antonio Arena antonio.arena@ing.unipi.it Stringhe Fondamenti di Informatica - Esercitazione n.9 2 In C++ non

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Dettagli

Passaggio di parametri per valore

Passaggio di parametri per valore Passaggio di parametri per valore #include using namespace std; int main() { int z, x = 1; z = ; cout

Dettagli

Corso di Algoritmi e Strutture Dati Lezione del Esercitatrice: dott.ssa Susanna Cozza. L argomento della lezione

Corso di Algoritmi e Strutture Dati Lezione del Esercitatrice: dott.ssa Susanna Cozza. L argomento della lezione L argomento della lezione Dall informazione al file Per permettere il riutilizzo di informazioni oltre la durata dei programmi che le hanno prodotte, i dati sono allocati su dispositivi in memoria secondaria.

Dettagli

Input/output in C e in C++

Input/output in C e in C++ FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Introduzione alla programmazione. Alice Pavarani

Introduzione alla programmazione. Alice Pavarani Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 26 Sommario: Gestione dei file in C. File ad accesso sequenziale: apertura, chiusura, lettura e scrittura. File binari. Gestione files

Dettagli

Informazioni Utili. Fondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2005/06 Tutor: Loris Cancellieri

Informazioni Utili. Fondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2005/06 Tutor: Loris Cancellieri Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Informazioni Utili Orario delle Esercitazioni Lunedì 14-16 Gruppo L Q Martedì 16-18

Dettagli

Operazioni su file di caratteri

Operazioni su file di caratteri Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si

Dettagli

Le operazioni I/0 in C++

Le operazioni I/0 in C++ Le operazioni I/0 in C++ R.C. La gerarchia di classi stream La Libreria Standard del C++ mette a disposizione, per l'esecuzione delle operazioni di input-output, un insieme di classi, funzioni e oggetti

Dettagli

Lezione 14. Stream, fstream e file

Lezione 14. Stream, fstream e file Lezione 14 Stream, fstream e file Output streams stream: sequenza di caratteri ostream: meccanismo per convertire valori di vario tipo in sequenze di caratteri ostream Output formattato standard output

Dettagli

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come

Dettagli

INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura.

INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura. INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura. Il C non ha istruzioni predefinite per l'input/output. In ogni versione

Dettagli

ELEMENTI DI INFORMATICA. Linguaggio C

ELEMENTI DI INFORMATICA. Linguaggio C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:

Dettagli

Perchè i files? Realizzano la persistenza dei dati. Sono delle strutture di dati sequenziali. dati che sopravvivono all esecuzione del programma

Perchè i files? Realizzano la persistenza dei dati. Sono delle strutture di dati sequenziali. dati che sopravvivono all esecuzione del programma Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali Files e S.O. I files sono gestiti dal S.O. e resi visibili

Dettagli

Introduzione al linguaggio C Primi programmi

Introduzione al linguaggio C Primi programmi Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Ingresso ed Uscita in C. Luca Abeni

Ingresso ed Uscita in C. Luca Abeni Ingresso ed Uscita in C Luca Abeni Input e Output in C Linguaggio C: progettato per essere semplice e con poche istruzioni Non esistono neanche istruzioni di ingresso / uscita (I/O)!!! Ingresso ed uscita

Dettagli

Formattazione avanzata. Modificatori di formato in output Modificatori di formato in input Stream predefiniti

Formattazione avanzata. Modificatori di formato in output Modificatori di formato in input Stream predefiniti I/O Avanzato e File Formattazione avanzata Modificatori di formato in output Modificatori di formato in input Stream predefiniti 2 Formattazione avanzata Formattazione dell output L output (su schermo

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli