A. Veneziani - I file di testo in C++

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "A. Veneziani - I file di testo in C++"

Transcript

1 A. Veneziani - I file di testo in C++ I file di testo Si considera file di testo tutto ciò che è codificato in un formato testuale, ossia un file nel quale i byte in esso contenuti rappresentano con la loro codifica caratteri di un testo avente un suo significato. Questo testo può essere vero e proprio testo nel senso comune del termine, una serie di righe descriventi un discorso, un racconto, una poesia, ecc., o alternativamente dati comunque in forma testuale avente altro scopo, quali un ripilogo contabile, la descrizione di un calcolo matematico, il listato di un programma. A questo proposito è opportuno sottolineare che quasi tutti i linguaggi hanno i loro listati codificati in puro testo, ed esso è contenuto in un file di testo. I sorgenti di vari linguaggi sono quindi contenuti in file di testo, e tali sono quindi non solo file con estensione tipica.txt, ma anche file con estensione.bas (Basic),.pas (Pascal),.asm (Assembler),.c (C),.cpp (C++),.cs (C#) ed altri. I file di testo non hanno una unica codifica possibile, anche se spesso viene utilizzata la codifica ASCII. Nel caso sia necessario codificare testi con un numero più grande di simboli si ricorre a codifica diversa dalla classica ASCII. I file di testo sono anche molto frequentemente utilizzati in file che descrivono la configurazione di un software (si pensi ai file.ini). Sono file di testo i cosidetti file di log per la registrazione dell attività di software server. Anche le comuni pagine Web contengono il linguaggio HTML ed altri linguaggi tutti espressi come file di testo. I file di testo sono visibili e modificabili (o editabili) con appositi software detti editor di testo. Tra questi piuttosto noti sono: Blocco note (Notepad), Editplus, Notepad++, TextPad, e molti altri. Editor di testo integrati e specializzati si trovano anche negli ambienti di sviluppo (IDE), come Visual C++, C++ Builder ed altri. File che non sono assimilabili a file di testo sono quelli che aperti in un editor di testo producono del testo del tutto incomprensibile e senza senso, non ricollegabili a nessuna lingua o argomento, ossia non producono testo, ma la loro codifica quindi rappresenta altro. Tali file sono detti di solito per differenziarli da quelli di testo, file binari, e tipicamente possono contenere immagini, musiche, programmi eseguibili, ed altro. L elaborazione dei file di testo in C++ Praticamente tutti i linguaggi di programmazione hanno capacità di elaborare file, e specificamente di operare su file di testo. I file sono infatti l unico modo per un programma di memorizzare dati che non siano volatili, ossia non risiedano in memoria centrale, e vengano quindi persi alla chiusura del programma in esecuzione. C++ non fà eccezione a questa regola e permette di effettuare l elaborazione di file di testo e binari. Per iniziare ad operare su qualunque file, la prima operazione da svolgere è la sua creazione o altrimenti la sua apertura (se il file esiste già). I compilatori C++ supportano solitamente anche la sintassi C e quindi potremmo utilizzare tale sintassi (non ad oggetti) per trattare ed operare sui file. Essendo C++ un linguaggio ad oggetti esso utilizza una sintassi e dei concetti sintattici piuttosto diversi da quelli del C. Per operare su file in C++ è necessario creare degli oggetti. Una classe di oggetti che permette di operare su files è la fstream (abbreviazione di file stream). Per utilizzare oggetti di tipo fstream dobbiamo includere una libreria detta anch essa fstream, quindi un programma operante su files in testa avrà la dicitura: #include <fstream> Un oggetto fstream si dichiara come una qualunque variabile di altro tipo, ossia con il comando: Pagina 1

2 a questo punto l oggetto è già pronto per essere utilizzato e ad esso vanno applicati opportuni comandi (detti metodi) di vario tipo. Apertura di un file L apertura di un file in C++ viene effettuata con una sintassi del tipo:... fs.open(<path e nome del file>,<modalità di apertura>); successivamente è possibile eseguire a seconda della modalità di apertura effettuata letture o scritture, o entrambe le operazioni sul file. Il metodo open si aspetta come primo parametro una stringa e come secondo parametro delle costanti che indicano la modalità di apertura, che può essere di diverso tipo 1 : ios::in ios::out ios::trunc ios::app Modalità in lettura Modalità in scrittura e creazione con troncamento Modalità di creazione con troncamento Modalità di creazione con aggiunta in coda In pratica la modalità: ios::out permette di scrivere sul file e azzera il suo contenuto al momento dell apertura, oltre a prevedere la creazione del file. Per aggiungere in coda basta specificare la modalità: ios::app tale modalità crea anche il file se non ci fosse La modalità ios::in prevede solo la lettura, ma ovviamente senza nessuna creazione. La combinazione delle due modalità sopra dette: ios::in ios::out permette di operare in scrittura e lettura su un file esistente, però senza effettuare la creazione. Si noti che la combinazione in delle varie modalità avviene tramite un operatore detto or bit a bit, che effettua l operazione di or sui singoli bit dei valori delle costanti. Se si dovesse prevedere lettura, scrittura e creazione (con troncamento), allora si dovrebbe usare la combinazione di modalità: ios::in ios::out ios::trunc La modalità: ios::in ios::app permette la lettura e la scrittura in coda con eventuale creazione del file. Se il file è nella stessa directory del file eseguibile, esso potrà essere indicato soltanto con il semplice nome, se invece esso dovesse riseidere in una directory con posizione diversa, sarà necessario specificare un opportuno path relativo o assoluto; ad esempio: fs.open(".\\dir1\\dir2\\prova.txt",ios::in ios::out ios::trunc); 1 Modalità verificate su Visual C Pagina 2

3 in questo caso il file viene creato o si effettuano operazioni su di esso tenendo conto che è posizionato in una directory sottostante dir2 contenuta in un altra directory dir1. Si noti il necessario raddoppio del carattere di backslash, e l eventuale uso dell indicatore di directory corrente (.). Lettura e scrittura nel file tramite stream Dopo aver definito le relative modalità di apertura nella open( ), sarà possibile scrivere in un file di testo facendo ricorso al normale operatore di stream. In questo modo si potranno scrivere nel file, numeri stringhe, numeri con la virgola, valori booleani, ecc. Ad esempio il codice: int i;... for (i = 0; i < 30; i++) fs << i << " "; permette di scrivere una serie di numeri interi nel file Tali numeri essendo opportunamente spaziati potranno essere riletti, un valore alla volta, tramite l operatore opposto, ossia con lo stream di lettura (>>), dal file verso una variabile del tipo opportuno: while (! fs.eof()) fs >> i; cout << i << endl; Nel caso di stringhe, la scrittura della stringa avverrà in modo complessivo, ossia per l intera stringa considerata, ma bisognerà tener presente che la lettura avverrà per singole parole, in quanto gli spazi fra esse valgono come separatore di dato. I dati strutturati non possono essere scritti o letti direttamente in un file di testo, in modo analogo a quanto avveniva con la lettura e scrittura su console (utilizzando cin e cout). Lettura di linee di testo da console; un promemoria Lo scorso anno abbiamo visto con quali istruzioni leggere intere righe di testo in input da console. Non sempre infatti la normale lettura effettuata con gli stream è consona ai problemi che si devono affrontare. Come si ricorderà tale lettura infatti considera il/i carattere/i di spazio come separatore fra dati (nel caso del testo le singole parole). In tal caso verranno lette solo le parole stesse, in modo separato e filtrati tutti gli spazi, considerati, con questa logica, separatori di dato. Questa regola vale sia per le variabili string, sia per i vettori di char. Talora invece si vuole leggere ed analizzare l intera riga di un testo, senza considerarla in modo spezzato. Ciò comporta, come vedemmo, un altro tipo di lettura dei dati, che utilizza altre istruzioni. Per le variabili string, ciò sarà possibile con l istruzione: getline(cin, st); ove st è una variabile string. C è da ricordare che questa istruzione può dare luogo a qualche complicazione nel caso vi siano già state altre letture via stream ( operatore >>) precedenti. Infatti la lettura con stream lascia nel buffer dati i caratteri di a capo che vengono riletti dopo dalla getline( ). In questo caso la getline, carica immediatamente l a capo leggendo a seconda dei casi: a) una stringa nulla. b) Il resto dei dati (spazi compresi) non ancora letti con le istruzioni di lettura ( >> ) precedenti Pagina 3

4 Per evitare questa problematica, occorre eliminare i dati residui e gli a capo dal buffer di lettura e questo viene reso possibile anteponendo alla istruzione getline, l istruzione: cin.ignore(80, \n ); che indica di estrarre (ed ignorare) fino ad un massimo di 80 caratteri / fino al newline eliminando quindi di fatto i dati residui (compreso il newline ( \n ) e quindi i relativi problemi di lettura. Nel caso di necessità di leggere una intera linea di testo dallo standard input in un vettore di char (ovviamente di adegate dimensioni), deve essere usata la funzione gets( ). In essa viene indicato come parametro il puntatore al vettore di char che deve recepire i dati in input dalla console: gets(vc); ove vc è un vettore di char sufficiente ampio. Il vettore viene riempito con tutti i dati sulla linea di input, i caratteri di a capo non sono inseriti in esso, ed ovviamente esso, alla fine dei dati utili viene messo un ASCII 0, terminatore di stringa nei vettori di char. La stessa problematica che abbiamo considerato per le stringhe e avviene anche nella lettura di vettori di char, ossia la lettura potrebbe essere saltata se precedentemente ci fossero lettura operanti con stream ( >> ). La soluzione al problema è analoga a quella prospettata sopra con l utilizzo del metodo ignore( ). Lettura di linee di testo con string e vettori di char Come si è detto nel paragrafo precedente la lettura di dati dal file tramite stream avviene interpretando lo spazio come separatore tra un dato e l altro. In questo modo nel caso di un normale testo andremmo a leggere solo le singole parole, cosa peraltro talvolta utile per alcuni scopi e problematiche. In molti altri casi comunque si desidera che il testo venga letto esso stesso effettivamente e nel suo complesso come dato, ossia in modo invariato, e questo di solito avviene con una lettura riga per riga. Possibili contenitori di dati quali singole parole e frasi o linee di testo, sono tipicamente i vettori di char e le variabili string. Vediamo quali sono le funzioni e metodi per leggere tali dati da un file di testo, ricordando anche le analogie con la lettura da console. Poniamoci innanzitutto il problema di leggere da un file costituito da un testo tradizionale (una poesia, una relazione o qualcosa di simile), il suo testo riga per riga. Se la variabile che raccoglie tale dato è un vettore di char si dovrà considerare il metodo getline, esso avrà la forma: fs.getline(vc, 200); ove vc è il vettore di caratteri e 200 è il numero massimo di caratteri da leggere. Nel caso la linea fosse più lunga di 200 caratteri semplicemente verrebbero prima letti 200 caratteri e successivamente utilizzati e poi in seguito il resto della riga. La getline ferma quindi la sua lettura quando incontri un a capo (in un file di testo in Windows tipicamente la coppia di codici ASCII 13 + ASCII 10) oppure quando si sia raggiunto il numero massimo di caratteri (solitamente settato ad un valore coincidente con la dimensione del vettore che li deve contenere). Un altro possibile contenitore di righe di testo sono le variabili string (stringa). Nel loro caso per leggere una intera linea di testo dal file si deve utilizzare una istruzione del tutto simile a quella utilizzata per la lettura da console, ossia: getline(fs, st); ove st è una string e fs è un oggetto fstream sul quale si sia effettuato con successo una operazione di apertura (metodo open). Si noti che la sintassi cambia solo nel fatto che al posto del cin c è ora l oggetto Pagina 4

5 fstream, che indica ed è associato al file aperto. Ovviamente l apertura di più file porta ad operare con più oggetti fstream e quindi si deve indicare come parametro quello opportuno. L effetto è quello della lettura di una intera linea di testo dal file, semprechè essa termini con un newline (carattere \n ). Lettura per singoli caratteri Sia a livello di console di input che sui file di testo è possibile effettuare una lettura per singoli caratteri. In questo caso il contenitore in cui andrà a finire il dato sarà una singola variabile char, qui chiamata ch. La lettura sulla console avverrà in questo caso con: ch = cin.get(); e la lettera letta verrà posta in ch. Tale lettura avviene solo dopo aver scritto la lettera e confermato con Invio. La lettura di una intera linea di testo in questa modalità è comunque possibile, programmando un ciclo che termini quando incontri un carattere di newline ( \n ) effettuando una lettura carattere per carattere: while (ch!= '\n') ch = cin.get(); cout << ch; La metodica per leggere per singoli caratteri da file di testo è del tutto analoga, utilizzando la sintassi: ch = fs.get(); ossia ponendo il nuovo oggetto fstream associato ad un file al posto dell oggetto standard input (cin). Anche in questo caso tutti i dati del file sono già disponibili per la lettura. Il file viene scandito in questa modalità di lettura carattere per carattere. Un file di testo potrebbe quindi essere letto nel suo complesso, carattere per carattere, a capo compresi, con le istruzioni: fs.open("testo.txt",ios::in); while (! fs.eof()) ch = fs.get(); if (! fs.eof()) cout << ch; fs.close(); in questo caso semplicemente ristampando il contenuto sullo schermo. Pagina 5

A. Veneziani Files di record

A. Veneziani Files di record A. Veneziani Files di record Caratteristiche dei file di record I file di record si differenziano rispetto a quelli di testo per avere i dati memorizzati in un formato predefinito ben preciso suddiviso

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

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

A. Veneziani - Le variabili puntatore

A. Veneziani - Le variabili puntatore A. Veneziani - Le variabili puntatore I puntatori Una variabile puntatore è atta a contenere un indirizzo di memoria. Questo, quindi, è il tipo di dato contenuto in una variabile puntatore. A seconda dell

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

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

I CARATTERI E LE STRINGHE

I CARATTERI E LE STRINGHE I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American 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

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

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

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

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

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

Input/Output. Console e File.

Input/Output. Console e File. Input/Output Console e File http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Le istruzioni di stampa servono a rendere visibili

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

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

Gestione dei files in linguaggio C. Fondamenti

Gestione dei files in linguaggio C. Fondamenti Programmazione e Laboratorio di Programmazione Gestione dei files in linguaggio C Fondamenti 1 Che cosa è un file? Un file può essere visto come un contenitore di informazioni simile ad un vettore di bytes

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

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Elementi di Base. Introduzione a Python.

Elementi di Base. Introduzione a Python. Elementi di Base Introduzione a Python http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Panoramica Elementi di base della sintassi (struttura,

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

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio Burocrazia: Università degli Studi di Ferrara Laurea triennale in Matematica Corso di Programmazione Primi passi con il linguaggio C Filippo Mantovani 1 Ottobre 009 Per ora nessun cambio di orario e/o

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

CODIFICA DEL TESTO 0???????

CODIFICA DEL TESTO 0??????? CODIFICA DEL TESTO Simboli da rappresentare: lettere a,b,c,.z,a,b,c,.z cifre 0,1,2,3, 9 simboli di punteggiatura ;:,. Rappresentati mediante sequenze di bit Una codifica dei simboli è perciò (almeno) una

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

Definizione di file. Directory e file File binari e file di testo

Definizione di file. Directory e file File binari e file di testo I/O Avanzato e File Definizione di file Directory e file File binari e file di testo 5 Definizione di file Directory e file Tutti i sistemi operativi permettono di organizzare le informazioni su hard disk

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

Gli Array. Dichiarazione di un array

Gli Array. Dichiarazione di un array Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato

Dettagli

Primo programma in C

Primo programma in C Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University

Dettagli

Struttura di un linguaggio

Struttura di un linguaggio Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture

Dettagli

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico: Struttura di un linguaggio Il C nel C++ Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture

Dettagli

Detail ELETTRONICA INDUSTRIALE

Detail ELETTRONICA INDUSTRIALE Terminale Slave LCD1A manuale di riferimento aggiornamento: 05-06-03 Detail ELETTRONICA INDUSTRIALE LCD1A - manuale di riferimento Giugno 2003 Tutti i diritti sono riservati. E' vietata la riproduzione

Dettagli

Struttura di un. Struttura dei programmi C

Struttura di un. Struttura dei programmi C Parte 4 Struttura di un Programma Struttura dei programmi C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume in un file): 1. Una parte contenente direttive

Dettagli

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii Sommario PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 1.1 Introduzione...

Dettagli

Le stringhe in C++ Utilizzo della classe string in un programma C++ Alessandro Bugatti 31 ottobre 2007

Le stringhe in C++ Utilizzo della classe string in un programma C++ Alessandro Bugatti 31 ottobre 2007 Le stringhe in C++ Alessandro Bugatti 31 ottobre 2007 Tutto dovrebbe essere fatto nel modo più semplice possibile, ma non più semplicemente di così. Albert Einstein Le stringhe nel linguaggio C vengono

Dettagli

I files in C. A cura del prof. Ghezzi

I files in C. A cura del prof. Ghezzi I files in C A cura del prof. Ghezzi 1 Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali 2 Files e S.O. I files

Dettagli

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico Gestione dei file Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Gli stream Si dice stream qualsiasi sorgente di dati in ingresso e qualsiasi

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

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

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

File e puntatori a file

File e puntatori a file File e puntatori a file Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di

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

4. Accesso diretto per gli archivi con record a lunghezza costante

4. Accesso diretto per gli archivi con record a lunghezza costante 4. Accesso diretto per gli archivi con record a lunghezza costante Nell accesso diretto (in inglese, random) al file binario, le operazioni di lettura o scrittura devono essere precedute dall operazione

Dettagli

La gestione di file in C++

La gestione di file in C++ Prof.ssa Sara Michelangeli La gestione di file in C++ I file sono strutture dati che consentono di conservare permanentemente, su memoria di massa, i nostri dati. Imparare ad usare i file è quindi INDISPENSABILE

Dettagli

Tipi di dato primitivi

Tipi di dato primitivi Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Dati testuali Tipi di dato testuali Caratteri Stringhe 5 Dati testuali Tipi di dato testuali I programmi visti finora erano in grado di elaborare esclusivamente informazioni numeriche

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

Iniziare a programmare in C++

Iniziare a programmare in C++ Iniziare a programmare in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

LEZIONE 1 LE BASI DEL LINGUAGGIO C

LEZIONE 1 LE BASI DEL LINGUAGGIO C LEZIONE 1 LE BASI DEL LINGUAGGIO C Simone Marchesini Roberto Pagliarini Dipartimento di Informatica Università di Verona COS È? Il C è un linguaggio di programmazione che permette di salvare i valori in

Dettagli

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

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

Corso sul linguaggio C

Corso sul linguaggio C Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione

Dettagli

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21 Luca Abeni Informatica Luca Abeni 1 / 21 Linguaggi di Programmazione di Alto Livello Parole chiave: possibilmente con significato in inglese Ma agli informatici piacciono molto contrazioni e acronimi...

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

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

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

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

Tipi di dato e istruzioni elementari in C++

Tipi di dato e istruzioni elementari in C++ Tipi di dato e istruzioni elementari in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli

Dettagli

Funzionalità. Il preprocessore C. Inclusione di file. Inclusione di file

Funzionalità. Il preprocessore C. Inclusione di file. Inclusione di file Il preprocessore C Ver. 2.4 Funzionalità Modifica il codice C prima che venga eseguita la traduzione vera a propria Le direttive al preprocessore riguardano: inclusione di file (#include) definizione di

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima

Dettagli

1 PANORAMICA SUL LINGUAGGIO C

1 PANORAMICA SUL LINGUAGGIO C 1 PANORAMICA SUL LINGUAGGIO C 1.1 Le origini del linguaggio C Il C fu inventato e implementato da Dennis Ritchie negli anni 70 su una macchina che impiegava il sistema operativo Unix. Il C è il risultato

Dettagli

Informatica Generale --- Scritto del XX Settembre 2002

Informatica Generale --- Scritto del XX Settembre 2002 Informatica Generale --- Scritto del XX Settembre 2002 Nome: Cognome: Testo e Risposte Esercizio 1 (punti 2 in prima approssimazione) Consideriamo numeri naturali rappresentati in base 10 e in base 12

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

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

Implementazione di DFA in C

Implementazione di DFA in C Implementazione di DFA in C Dispensa di Laboratorio di Linguaggi di Programmazione Sommario Corrado Mencar, Pasquale Lops, Stefano Ferilli Questa dispensa fornisce le linee guida per l implementazione,

Dettagli

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una

Dettagli

Lezione XXII.I La gestione dei file Fondamenti

Lezione XXII.I La gestione dei file Fondamenti Programmazione e Laboratorio di Programmazione Lezione XXII.I La gestione dei file Fondamenti 1 Che cosa è un file? Un file può essere visto come un contenitore di informazioni simile ad un vettore di

Dettagli

A. Veneziani - Array e files di testo in PHP

A. Veneziani - Array e files di testo in PHP A. Veneziani - Array e files di testo in PHP Elementi sugli array Gli array in PHP hanno specifiche peculiarità: Non devono essere preallocati Non esiste una dimensione limite predefinita (ossia il numero

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

Introduzione. Programma didattico

Introduzione. Programma didattico Introduzione Il corso contenuto in questa parte riguarda i concetti elementari della programmazione, al livello minimo di astrazione possibile, utilizzando il linguaggio C per la messa in pratica degli

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Linguaggi di Programmazione Sintassi

Dettagli

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr.

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr. Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XII, parte I ) Gestione dell input Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

FILE DI TESTO e SOTTOPROGRAMMI

FILE DI TESTO e SOTTOPROGRAMMI FILE DI TESTO e SOTTOPROGRAMMI Prof. Enrico Terrone A. S: 2008/09 I file di testo in C++ I file di testo sono una forma di input/output alternativa alla tastiera e al monitor (con il vantaggio della persistenza).

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 A1 - Struttura File 1 Prerequisiti Tecnica della programmazione elementare Sottoprogrammi Tipo di dato Concetti elementari sulle memorie di massa 2 1 Introduzione Nei casi

Dettagli

Nozioni fondamentali su Algoritmi e programmazione

Nozioni fondamentali su Algoritmi e programmazione Nozioni fondamentali su Algoritmi e programmazione VARIABILE: La variabile è un contenitore di dati. Questo contenitore può includere dati ti tipo numerico o testuale principalmente. Essa è dotata di un

Dettagli

A. Veneziani - Alcune considerazioni su elaborazione con stringhe in C#

A. Veneziani - Alcune considerazioni su elaborazione con stringhe in C# A. Veneziani - Alcune considerazioni su elaborazione con stringhe in C# Importanza delle stringhe Nella elaborazione con il calcolatore due sono le grandi famiglie di tipi di dato: i numerici e gli alfanumerici.

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

PASCAL. 05/04/2012 Pascal 1

PASCAL. 05/04/2012 Pascal 1 PASCAL 05/04/2012 Pascal 1 Per iniziare Compariranno vari menu, ma quelli principali sono tre File in cui troviamo: New per creare un nuovo documento di lavoro, Load per aprire lavori già salvati, Save

Dettagli

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni

Dettagli

Stringhe in C. Alessandra Giordani Lunedì 23 aprile 2012

Stringhe in C. Alessandra Giordani Lunedì 23 aprile 2012 Stringhe in C Alessandra Giordani agiordani@disi.unitn.it Lunedì 23 aprile 2012 http://disi.unitn.it/~agiordani/ Stringhe Sono particolari array: Ogni elemento del vettore è di tipo char La stringa è terminata

Dettagli

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1 Concetti base della Tecnologia dell informazione Algoritmi Come interpreta un computer un problema? Algoritmi Algoritmo: sequenza ordinata di istruzioni per risolvere un problema (tradotto: sequenza di

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione Corso di Informatica Linguaggi di Programmazione Anno Accademico 2011/2012 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un

Dettagli

Linguaggio C: i file

Linguaggio C: i file Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: i file La presente dispensa e da utilizzarsi ai soli fini didattici previa

Dettagli

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali o binarie Noi ci occuperemo di file contenenti informazioni testuali In fondo ad un file sequenziale

Dettagli