Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo...

53
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Parte 8 File Domenico Daniele Bloisi Si ringrazia Raffaele Nicolussi

Transcript of Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo...

Page 1: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Corso di Fondamenti di Informatica

Ingegneria delle Comunicazioni BCOR

Ingegneria Elettronica BELR

Parte 8

File

Domenico Daniele Bloisi

Si ringrazia Raffaele Nicolussi

Page 2: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

2010/2011File

Parte 8

Pagina 2

Docenti

Parte I – prof. Silvio Salza

[email protected]

http://www.dis.uniroma1.it/~salza/fondamenti.htm

Parte II – ing. Domenico Daniele Bloisi

[email protected]

http://www.dis.uniroma1.it/~bloisi/didattica/fondinf1011.html

Nota: %7E corrisponde alla tilde ~

Page 3: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 3

Informazioni Generali

ing. Domenico Daniele Bloisi, PhD

Dipartimento di Informatica e Sistemistica

Via Ariosto 25

(adiacente Piazza Dante,

A fermate Manzoni, Vittorio Emanuele,

Tram 3 fermata via Labicana)

mailto:[email protected]

http://www.dis.uniroma1.it/~bloisi

2010/2011File

Parte 8

Page 4: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Ricevimento

Pagina 4

Martedì 15.00 – 17.00

DIS, via Ariosto 25

Aula docenti adiacente aula A4

Si consiglia di inviare una email per conferma e

di controllare la bacheca degli avvisi

http://www.dis.uniroma1.it/~bloisi/didattica/fondinf1011.html#Avvisi

2010/2011File

Parte 8

Page 5: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 52010/2011

Sommario – Parte 8

• Array di caratteri: stringhe

• Inizializzazione di stringhe

• Lettura e scrittura di stringhe

• Operazioni sulle stringhe

• Funzioni per la manipolazione delle

stringhe: strcpy, strncpy, strcat, strncat,

strcmp, strstr

• Input/Output in C

• Stream

• File

Operazioni sulle stringhe

Parte 8

Page 6: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 62010/2011

I/O in C

File

Parte 8

Il sistema di I/O del C è una interfaccia uniforme

per il programmatore indipendentemente dal

dispositivo di lettura e scrittura utilizzato.

Scrivere o leggere da file o da video/tastiera

non comporta differenze.

Page 7: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Schema di un calcolatore

Tastiera

Mouse

Stampante

Modem

bus

Porte I/O

CPU

Controller

dischi

Memoria

Scheda

video

Scheda

audio

Scheda

rete

Hard disk

CD/ROM

DVD

Monitor

Casse

Microfono

Altro PC

Internet

Pagina 72010/2011File

Parte 8

Page 8: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 82010/2011

Sistema di I/O

File

Parte 8

Il sistema di I/O del C crea un livello di

astrazione tra il programmatore e

l’oggetto (sia esso un file o dispositivo)

Viene creato un meccanismo di astrazione

tramite un flusso di dati o stream

Page 9: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 92010/2011

Stream

File

Parte 8

Uno stream (flusso di dati) fornisce un

canale di comunicazione tra il programma

e l’esterno (file o device)

Uno stream è una struttura costituita da

una sequenza di byte terminante con un

apposito carattere che ne identifica la fine.

Page 10: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 102010/2011

Stream

File

Parte 8

Gli stream vengono associati (con opportuni

comandi)

ai dispositivi fisici collegati al computer

(tastiera, video, stampante, etc…)

a file residenti sulla memoria di massa

Page 11: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Bufferizzazione

Gli streams di I/O sono bufferizzati: questo

significa che ogni volta viene letto da un file o

scritto su di esso un "pezzo" di dimensioni

stabilite attraverso alcune aree temporanee di

immagazzinamento (è importante notare che il

file puntatore punta effettivamente a questo

buffer).

Pagina 112010/2011File

Parte 8

Page 12: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Bufferizzazione

Pagina 122010/2011File

Parte 8

Questo metodo rende efficiente l'I/O, ma è

necessario fare attenzione:

i dati scritti in un buffer non compaiono nel

file (o nel device) finché il buffer non è

riempito o scaricato ("\n" serve a questo).

Qualsiasi uscita anormale del programma

può causare problemi.

Page 13: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 132010/2011

FILE

File

Parte 8

Esiste una struttura di dati interna al C, FILE, che rappresenta uno stream ed è definita nel file stdio.h.

Viene usato il nome FILE per motivi storici, anche se la

struttura FILE può essere usata per rappresentare un

oggetto diverso da un file in “senso tecnico”.

E' sufficiente fare riferimento alla struttura FILE nei

programmi C quando si realizza l'I/O utilizzando uno

stream.

Page 14: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 142010/2011

Esempio printf

File

Parte 8

Produce una sequenza di caratteri che viene

inviata allo stream stdout (video)

Page 15: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 152010/2011

Esempio scanf

File

Parte 8

Legge i caratteri dallo stream stdin (tastiera),

ossia lo stream di input e li deposita

convertendoli nello specifico formato nelle

variabili il cui indirizzo è specificato

Page 16: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 162010/2011

File

File

Parte 8

I file rappresentano la principale struttura per la

memorizzazione di dati in maniera permanente

su memoria di massa (hanno la caratteristica di

sopravvivere allo spegnimento della macchina).

Essi possono contenere caratteri alfanumerici

codificati in formato standard (es. ASCII)

direttamente leggibili dall’utente (file di testo),

oppure dati in un formato interpretabile dai

programmi (file binari ).

Page 17: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 172010/2011

File

File

Parte 8

Flusso sequenziale di byte terminato

dal carattere di terminazione chiamato

End-Of-File (EOF).

Page 18: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 182010/2011

File di testo

File

Parte 8

I file di testo sono normalmente organizzati in

sequenze di linee ciascuna delle quali contiene

una sequenza di caratteri.

In questo corso tratteremo solamente file di

testo.

Page 19: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 192010/2011

File e directory

File

Parte 8

Ogni file è caratterizzato da un nome e una

directory (o cartella) in cui risiede.

Le operazioni fondamentali sui file sono:

creazione, lettura, scrittura, rinominazione ed

eliminazione.

Queste operazioni possono essere effettuate

tramite il sistema operativo (o altri programmi

applicativi) oppure mediante apposite istruzioni

del linguaggio C.

Page 20: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 202010/2011

Operazioni sui file

File

Parte 8

Per eseguire operazioni di lettura e scrittura sui

file è necessario

“aprire” il file prima di eseguire le operazioni

“chiudere” il file al termine dell’esecuzione

delle operazioni.

Page 21: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 212010/2011

File e stream

File

Parte 8

Il file deve essere connesso al programma

tramite l’astrazione dello stream.

L’apertura e la chiusura dello stream

associato al file non sono automaticicome invece nel caso di stdin, stdout,

stderr

Page 22: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 222010/2011

Aprire un File

File

Parte 8

Aprire un file significa indicare al sistema

operativo la volontà di eseguire operazioni sui

file.

Il sistema operativo verificherà all’atto

dell’apertura del file se tale operazione è

possibile.

Page 23: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 232010/2011

Scrittura e lettura

File

Parte 8

L’apertura del file si distingue in due casi:

1. apertura in lettura

2. apertura in scrittura

che definiscono un comportamento differente nel

sistema operativo (ad esempio, è possibile che due

applicazioni aprano lo stesso file contemporaneamente

in lettura, ma non in scrittura).

In molti linguaggi di programmazione l’apertura in

scrittura di un file coincide con la sua creazione.

Page 24: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 242010/2011

Le funzioni fprintf e fscanf

File

Parte 8

fprintf ( <descrittoreFile>,

<stringa di controllo>,

<altri-argomenti> )

fscanf ( <descrittoreFile>,

<stringa di controllo>,

<altri-argomenti> )

Sono le versioni di printf e scanf relative ad un

generico file esterno.

Page 25: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 252010/2011

Descrittore di File

File

Parte 8

Cosa è <descrittoreFile>:

È una connessione tra:

il mondo interno al programma (tutto in memoria

centrale)

e

il mondo esterno (rappresentato dai file residenti

nelle memoria di massa)

È legato al nome fisico del file e ad altre

caratteristiche strutturali

Page 26: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 262010/2011

Descrittore di File

File

Parte 8

Per usare file esterni

Si deve introdurre questo “rappresentante

interno” del mondo esterno

Si deve creare una associazione

temporanea tra mondo esterno e

“rappresentante interno”

Page 27: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 272010/2011

Sintassi - Descrittore di File

File

Parte 8

Il descrittore di file è una variabile

Bisogna specificare un nome e un tipo per

poterlo dichiarare

FILE *<identificatore>;

Esempio

FILE *ingressoDsc;

Page 28: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 282010/2011

Puntatore a File

File

Parte 8

FILE *ingressoDsc;

FILE * si riferisce ad uno specifico tipo

puntatore a file esterno

ingressoDsc è una variabile di tipo puntatore a

file

Attenzione: manca ancora il legame con

l’esterno

Page 29: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 292010/2011

Le funzioni fprintf e fscanf

File

Parte 8

int fprintf ( FILE * stream, const char * format, ... );

int fscanf ( FILE * stream, const char * format, ... );

Sono definite in stdio.h

Page 30: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 302010/2011

Connessione

File

Parte 8

La funzione fopen crea la connessione tra il

descrittore ed il file vero e proprio (esterno)

<descrittoreFile> =

fopen( <nomefileesterno>,

<modalità di uso> );

Esempio

ingressoDsc =

fopen("filedaleggere.txt", "r");

Page 31: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 312010/2011

Modalità di uso

File

Parte 8

Si deve specificare se il file va usato in letturao scrittura (si ricordi la distinzione tra stdin e

stdout )

File in lettura "r" (read)

File in scrittura "w" (write)

Scrittura alla fine del file "a" (append)

Page 32: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 322010/2011

Esempio

File

Parte 8

FILE *uscitaDsc;

uscitaDsc =

fopen("filedascrivere.txt", "w");

Page 33: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 332010/2011

Chiusura della connessione

File

Parte 8

Quando il file esterno non serve più, deve essere

chiuso

Questo si ottiene cancellando esplicitamente la

connessione con l’esterno

fclose(<descrittoreFile>);

Page 34: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 342010/2011

Esempio

File

Parte 8

int main (void) {

//altre dichiarazioni di variabili

FILE *inputDsc;

FILE *outputDsc;

…………………………

inputDsc =

fopen("filedatiingresso", "r")

outputDsc =

fopen("filedatiuscita.txt", "w")

…………………………

fclose(inputDsc);

fclose(outputDsc);

}

Page 35: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 352010/2011

Eccezioni

File

Parte 8

Nella comunicazione con il mondo esterno può

accadere che il file non si apra correttamente.

Questo viene segnalato da un valore particolare

del descrittore di file, indicato con NULL.

Dopo fopen( ) inserire sempre un controllo

if (inputDsc == NULL) {

}

Page 36: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 362010/2011

Esempi

File

Parte 8

if (inputDsc == NULL)

printf ("errore nella apertura del "

"file di ingresso");

if (outputDsc == NULL)

printf ("errore nella apertura del "

"file di uscita");

Page 37: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 372010/2011

Modello ideale per il File

File

Parte 8

Un file può essere immaginato come un nastro con

delle informazioni ed una testina di lettura che è il

descrittore.

La testina viene spostata da istruzioni come fscanf

e fprintf

Page 38: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 382010/2011

La fine del file (EOF)

File

Parte 8

La fine del file viene segnalata da un carattere

particolare, il simbolo di End-of-File (EOF)

La codifica del carattere EOF dipende dalla

macchina

• Ctrl-z per Windows

• Ctrl-d per Mac

• Ctrl-x per Unix e Linux

Page 39: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 392010/2011

Riassumendo

File

Parte 8

1. Viene dichiarato il descrittore del fileFILE *<descrittore>;

2. Il file si apre con la funzione fopen

<descrittore> = fopen( <nome_file>,

<modo_apertura );

• <nome_file> è il nome fisico del file, come è

chiamato sul disco, es. ingresso.dat• <modo_apertura>:

"w" se il file è aperto in scrittura

"r" se il file è aperto in lettura

Page 40: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 402010/2011

Riassumendo

File

Parte 8

3. Possono essere eseguite operazioni di lettura e

scrittura utilizzando il descrittore del file

4. Il file viene chiusofclose(<descrittore>);

Page 41: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 412010/2011

Esempio

File

Parte 8

FILE *fp;

fp = fopen("test.dat", "r");

FILE *fptr;

fptr = fopen("prova.dat", "w");

//lettura utilizzando fp e

//scrittura utilizzando fptr

fclose(fp);

fclose(fptr);

Page 42: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 422010/2011

Esercizio

File

Parte 8

Leggere un file di testo esempio.txt e stampare ogni

parola in una singola riga

Contenuto del

file di testo.

esempio.txt

Output

Contenuto

del

file

di

testo.

Page 43: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 432010/2011

Condizioni sull’input

File

Parte 8

Esiste già un file che deve essere aperto

in lettura e analizzato per produrre il

risultato desiderato.

Page 44: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 442010/2011

Soluzione

File

Parte 8

#include <stdio.h>

int main (){

char ch;

FILE *fd; //descrittore del file

fd = fopen("esempio.txt", "r");

if(fd != NULL){

while (fscanf(fd, "%c", &ch) != EOF) {

if(ch == ' ')

printf("\n");

else

printf("%c", ch);

}

}

else

printf ("\nErrore di apertura!");

fclose(fd);

return 0;

}

Page 45: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 452010/2011

Valore di ritorno per scanf

File

Parte 8

int fscanf ( FILE * stream, const char * format, ... );

fscanf restituisce un valore che è pari ad EOF

quando viene raggiunta la fine del file

Page 46: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 462010/2011

Operatori per leggere e scriverecaratteri

File

Parte 8

Da tastiera e video

• getchar (lettura)

• putchar (scrittura)

Da file

• fgetc(<filedescrittore>);

• fputc (<intero>, <filedescrittore>);

Page 47: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 472010/2011

Esempio

File

Parte 8

while((ch = fgetc(fd)) != EOF)

{

if(ch == ' ')

putchar('\n');

else

putchar(ch);

}

Page 48: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 482010/2011

Esercizio scrittura su file

File

Parte 8

Memorizzare su un file clienti.txt i seguenti

dati:

• Numero conto

• Bilancio

per un massimo di 10 clienti inseriti da tastiera.

Digitare EOF per terminare prima l’inserimento.

Page 49: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 492010/2011File

Parte 8

int main () {

int conto, i; float bilancio;

FILE *cfPtr; /* descrittore file */

if ((cfPtr = fopen("clienti.txt", "w")) == NULL)

printf("Il file non puo' essere aperto");

else {

for (i=1; i<=10; i++) {

printf("Immetti il conto e il bilancio\n");

if(scanf("%d%f", &conto, &bilancio) == EOF)

break;

fprintf(cfPtr, "%d %f\n", conto, bilancio);

}

fclose(cfPtr);

}

return 0;

}

Soluzione scrittura su file

Page 50: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 502010/2011

Esecuzione

File

Parte 8

Immetti il conto e il

bilancio

23 456

Immetti il conto e il

bilancio

12 8764

Immetti il conto e il

bilancio

90 -78

Immetti il conto e il

bilancio

^Z

23 456.000000

12 8764.000000

90 -78.000000

clienti.txt

Page 51: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 512010/2011

Esercizio lettura da file

File

Parte 8

Leggere dal file clienti.txt i seguenti

dati:

• Numero conto

• Bilancio

Page 52: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 522010/2011

Soluzione lettura da File

File

Parte 8

int main () {

int conto, i; float bilancio;

FILE *cfPtr; /* descrittore file */

if ((cfPtr = fopen("clienti.txt", "r")) == NULL)

printf("Il file non puo\' essere aperto\n");

else {

printf("Conto \t\t Bilancio\n");

for (i=1; i<=10; i++) {

if(fscanf(cfPtr,"%d%f",&conto,&bilancio) == EOF)

break;

printf("%d \t\t %f\n", conto, bilancio);

}

fclose(cfPtr);

}

return 0;

}

Page 53: Presentazione di PowerPointbloisi/didattica/comunicazioniElettronica1011/... · sopravvivere allo spegnimento della macchina). Essi possono contenere caratteri alfanumerici codificati

Pagina 532010/2011

Esecuzione

File

Parte 8

Conto Bilancio

23 456.000000

12 8764.000000

90 -78.000000