• Non ci sono risultati.

1 Fondamenti di Informatica

N/A
N/A
Protected

Academic year: 2021

Condividi "1 Fondamenti di Informatica "

Copied!
3
0
0

Testo completo

(1)

1 Fondamenti di Informatica

© 2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2)

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 1

FONDAMENTI DI INFORMATICA

Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI

Facoltà di Ingegneria Università degli Studi di Udine

Linguaggio C I file

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà degli autori prof. Pier Luca Montessoro e Ing. Davide Pierattoni, Università degli Studi di Udine.

Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione.

Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori.

L’informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. Gli autori non assumono alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell’informazione).

In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste slide.

In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali.

Nota di Copyright

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 3

I file

• Strutture per l’organizzazione della memorizzazione dei dati nella memoria di massa

• Diversi tipi: accesso casuale, accesso sequenziale, binari, ASCII, a record, ecc.

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 4

I file in C

• Contenuto: binario o ASCII

• Accesso: sequenziale (stream) – consentono lettura/scrittura soltanto in

sequenza, dall’inizio alla fine – 2 applicazioni: file su disco/nastro,

dispositivi di I/O (tastiera, monitor) – nei file su disco con apposite funzioni si

può “saltare” direttamente in un punto qualsiasi del file

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 5

File ASCII sequenziali

disco

dati EOF

lettura/scrittura File Control

Block

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 6

File ASCII sequenziali

• Struttura dati per gestire il file:

#include <stdio.h>

FILE *fp;

• Operazioni sul file:

– apertura – chiusura

– lettura/scrittura dati

– controllo “End Of File” (EOF)

puntatore a struttura FILE

(2)

2 Fondamenti di Informatica

© 2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2)

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 7

Apertura di file ASCII sequenziale

• Apertura in lettura:

#include <stdio.h>

#include <stdlib.h>

...

FILE *fp;

if ((fp = fopen ("dati.txt", "r"))== NULL) {

printf ("errore di apertura del file");

exit (EXIT_FAILURE);

}

nome del file modo = read

se il file non esiste, restituisce NULL

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 8

Apertura di file ASCII sequenziale

• Apertura in scrittura:

#include <stdio.h>

#include <stdlib.h>

...

FILE *fp;

if ((fp = fopen ("dati.txt", "w"))== NULL) {

printf ("errore di apertura del file");

exit (EXIT_FAILURE);

}

nome del file modo = write

se il file esiste, lo cancella e ne crea uno nuovo;

se non c’è spazio disponibile restituisce NULL

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 9

Apertura di file ASCII sequenziale

• Apertura in modalità “append”:

#include <stdio.h>

#include <stdlib.h>

...

FILE *fp;

if ((fp = fopen ("dati.txt", "a"))== NULL) {

printf ("errore di apertura del file");

exit (EXIT_FAILURE);

}

dati già presenti prossime scritture EOF alla chiusura del file

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 10

Chiusura di file ASCII sequenziale

#include <stdio.h>

#include <stdlib.h>

...

FILE *fp;

...

fclose (fp);

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 11

Operazioni su file ASCII sequenziali Lettura

int fgetc (FILE *fp);

int fgets (char *s, int nmax, FILE *fp);

int fscanf (FILE *fp, char *format, ...);

Scrittura

int fputc (int ch, FILE *fp);

int fputs (char *s, FILE *fp);

int fprintf (FILE *fp, char *format, ...);

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 12

Controllo di EOF

• Funzione feof:

while (!feof (fp)) ...

• Valori di ritorno delle funzioni di lettura:

while ((ch = fgetc(fp)) != EOF) ...

while (fgets (s, nmax, fp) != NULL) ...

while (fscanf (fp, "%d", &n) != EOF)

...

(3)

3 Fondamenti di Informatica

© 2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2)

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 13

File speciali

• stdin: standard input (la tastiera)

• stdout: standard output (il monitor)

• stderr: standard error (spesso ancora il monitor)

• Sono predefiniti e non è necessario né dichiararli né aprirli

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 14

File binari

• open

• read

• write

• Trasferiscono i dati, a blocchi, in aree di memoria (vettori)

Fondamenti di Informatica - Linguaggio C - I file

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere la nota di copyright a pag.2) 15

Accesso casuale

• ftell

• fseek

• Permettono di memorizzare un indirizzo

all’interno del file, e poi di ritornarci per

riprendere da lì la lettura o la scrittura

Riferimenti

Documenti correlati

© 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni

© 1999 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2 Le tecnologie alla base del World Wide Web (I parte). © 1999 Pier Luca Montessoro ( si veda la nota a

© 2001 Pier Luca Montessoro (si veda la nota a pagina 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei

In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali.. Nota

In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali1. Nota

Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà degli

Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non

Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in.. Nota