Input / Output. Input / Output. Laboratorio di Linguaggi. Printf. Input / Output. Scrittura formattata. Scrittura formattata.

Documenti analoghi
char int x=10;... printf("il valore di x e' %d \n", x); int printf( const char* formato [, lista parametri...] ) Il valore di x e' 10

Capitolo 5 -- Stevens

Scrittura formattata - printf

C: panoramica. Violetta Lonati

Introduzione. L elaborazione dei files in C. Elaborazione dei files (1) Elaborazione dei files (2) D.D. cap. 11+ pp K.P. pp.

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

file fisico file logico

Introduzione al C. Stream e disk file

Gestione dei file. File di testo e binari

Indice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale

FILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto

Gestione dei File in C

Esercizi. I File ed il C

Gestione dei file. Linguaggio ANSI C Input/Output - 13

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

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

Linguaggio C: i file

Suggerimenti, note utili ed errori comuni. Fondamenti di informatica T

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

File e puntatori a file

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

Librerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA stdio.h

Programmazione in Java (I modulo)

Librerie C. Corso di Linguaggi e Traduttori 1 AA

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

Introduzione al C. Unità 9 File. D. Bloisi, S. Peluso, A. Pennisi, S. Salza

File binari e file di testo

Input/Output di numeri

La gestione dei file in C

L apertura di un file ci restituisce un puntatore a una struttura chiamata FILE fopen:

I files in C. A cura del prof. Ghezzi

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

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

Lab 10 Gestione file di testo

puntatori Lab. Calc. AA 2007/08 1

Fondamenti di Informatica

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2013

Variabili e Istruzioni

Sommario FONDAMENTI DI INFORMATICA. File e Python. Gestione di file. LINGUAGGIO Python Gestione dei file

SOMMARIO SU LETTURA E SCRITTURA (I/O) DEGLI STANDARD FILES

Lezione 25: File Mercoledì 18 Novembre 2009

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA SIENA UFF

Le Funzioni e la Ricorsione

Fondamenti di Informatica

Esercizio 1 (15 punti)

Laboratorio di programmazione

Sulla libreria standard, III. Manipolare file con stdio.h

Relativamente agli esempi sopra riportati, al termine dell esecuzione della funzione il file di uscita dovrà contenere quanto riportato a lato.

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Input/output in C e in C++

Laboratorio di Progettazione Web

Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011

Struttura dati FILE. Motivazioni: memorie a confronto

Primi passi col linguaggio C

Gestione dei File. dischi nastri cd

Esercizio 1 (15 punti)

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

Tipi di dato primitivi

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

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

Se vogliamo cambiarlo: i dati vengono sovrascritti. 300 White Jones (vecchio valore) 300 Worthington 0.00

Sommario FONDAMENTI DI INFORMATICA 1. Il tipo FILE. Passaggio da standard I/O. LINGUAGGIO C Gestione dei file

Caratteri e stringhe

Programmazione web lato client con JavaScript. Marco Camurri 1

Precedenza e associatività. Complementi sul C - 2. Esempi. Esempi

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

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Corso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio

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

Introduzione al linguaggio C Puntatori

INTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C

Capitolo 11 Elaborazione di file

Informatica 1. Prova di recupero 15 Febbraio 2005

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

Corso di Laurea in Ingegneria Meccanica A-K. Fondamenti di Informatica A. A Gestione dei File. A.Pinto

Struttura dei programmi C

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

File binari, Operazioni sui File binari, Allocazione dinamica della memoria

I File. Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa.

Laboratorio di Algoritmi e Strutture Dati

Gestione dei File C II Parte

Esercitazioni di Fondamenti Informatica - Modulo A

FONDAMENTI DI INFORMATICA

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

Gestione di files Motivazioni

Lezione 6: Funzioni di I/O avanzate

Gestione dei File. Indice. Il file system in C. Principali operazioni sui file (dalla Standard Library) Esempi. Corso di Informatica A.

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Passare argomenti al programma

Esercizi su strutture dati

per leggere caratteri: getchar(void); Laboratorio di linguaggi

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Input/Output. Console e File.

Transcript:

Università dell Insubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea Informatica Anno Accademico 2007/08 Laboratorio di Lguaggi lezione XI: I/O Marco Tari Prtf Scrittura formattata t prtf( o [, lista parametri] Scrittura formattata carattere'\n': End Of Le (accapo t x=10; prtf("il valore di x e' \n", x; è un format tag : Scrive sullo schermo: significa, scrivi il valore di un parametro tero Il valore di x e' 10 Scrittura formattata t x=10, y=0; prtf("posizione [,]! ", x, y; Scrive sullo schermo: Posizione [10,0]! Vi ricordate che 'a' e 121 sono entrambi costanti (literals di tipo char? Usando il format tag appropriato, posso far scrivere uno o l'altro: char ch='a'; prtf("posso scrivere o a piacare! ", ch, ch; Scrive sullo schermo: Posso scrivere a o 96 a piacere! 1

%u %x %X %o terpreta il parametro come: un tero con segno un tero senza segno un numero virgola mobile un carattere una strga un puntatore un array di caratteri termato da '\0' %u %x %X %o terpreta il parametro come: un tero con segno un tero senza segno un base numero otto (es. virgola 16473 mobile un carattere esadecimale (es. 12AC3A una esadecimale strga (es. 12ac3a un decimale puntatore %#u %#x %#X %#o terpreta il parametro come: un tero con segno un tero senza segno un base numero otto (es. virgola 016473 mobile un carattere esadecimale (es. 0X12AC3A una esadecimale strga (es. 0x12ac3a un decimale puntatore terpreta il parametro come: un tero con segno un numero virgola mobile notazione esponenziale (es. un 1.2e12 carattere (es. una 1.2E12 strga un notazione puntatorecomune Esempio prtf("scrivo e!\n\nah!\n", 1, 2, 3; Esempio prtf("scrivo %5d %5d e %5d!\n\nah!\n", 1, 2, 3; "5 caratteri di lunghezza" Scrivo 1 2 e 3 Scrivo 1 2 e 3 ah! ah! 2

etc +: specifica il segno anche se pos l: è un "float lungo", cioè un double etc prtf("scrivo: %+6.3lf e anche %+.0e\n", 1.1, 1.2 ; 6 cifre tutto 3 cifre dopo virgola char* strga= "Totale ( euro: "; t res; prtf("\n", strga, res ; Scrivo: +1.100 e anche +1e+000 Totale ( euro: 130 Avvertenza: attenzione ai tipi Avvertenza: attenzione ai tipi prtf("torna %f euro\n", 150 ; prtf("torna %f euro\n", 150 ; Sullo schermo: Torna 0 euro Sullo schermo: Torna 0 euro Errore! Ha terpretato un valore tero come un float! Se i due tipi hanno dimensione diversa, può anche causare un crash (errore di accesso lettura. Avvertenza: attenzione ai tipi Funzionamento di prtf Come si scrive un programma che ci dice quale e' il codice ascii del simbolo '!'? t x=150; prtf("torna %f euro\n", x ; Sullo schermo: E se lo vogliamo esadecimale? Torna 0 euro 3

Funzionamento di prtf Come si scrive un programma che risolve il quiz del banner misterioso? char msg[]= {78,111,119,32,72,105,110,103,0; testo del quiz Dove scrive prtf? sull' output standard di solito, significa sul monitor ma, ad esempio al momento di eseguire il programma posso utilizzare il la stassi: programma> file Scrivere non solo sullo schermo Esempio con sprtf t prtf( [, lista param.] t fprtf( FILE* stream, [, lista param.] t sprtf( char* output, [, lista param.] prtf: scrive sull'output standard fprtf: scrive su un File sprtf: scrive su un'altra Strga (che deve essere già allocata concatenazione di strghe char[] strga1 = "cacio"; char[] strga2 = "cavallo"; char *concat; sprtf(concat,"",strga1, strga2; NON vi eravate accorti dell'errore?! Esempio con fprtf scrittura un file FILE* : il puntatore a una struttura che contiene tutto quello che c'è da sapere su un file aperto. Cosa contiene questa struttura? Non importa! (è platform dependent Gestiamo i file utilizzando solo puntatori a questa struttura fopen : apri un file. resitutisce un FILE* (alloca la struttura & apre il file Primo parametro: nome del file Secondo parametro: strga con 1-read o write o append, 2- modotesto o bario Restituisce NULL se non è riusicto ad aprire il file float x,y,z; FILE* file_di_output= fopen ("ciao.txt", "wt"; fprtf( file_di_output,"(%f %f %f",x,y,z ; fclose(file_di_output; fclose : chiudi un file. (chiude il file & disalloca la struttura solo un certo numero di files può essere aperto un dato momento consente ad altre applicazioni di usare il file 4

da prtf a per leggere dalla tastiera vece che scrivere sul monitor t x; prtf("", & x; ora vuole un puntatori! (perche? deve essere un puntatore a qualcosa di allocato ( questo esempio, è allocato automaticamente e' ancora + importante che il tipo del puntatore corrisponda al format tag! (errori scrittura vece che lettura, fa più male Tutto il resto come prtf Restituisce il numero di target tag che è stato corettamente assegnato t x,y, n; unsigned t z; n = ("-:%X", &x, &y, &z; n sarà uguale a 3 se l'utente avrà digitato, ad esempio:5-5:a0a111 n sarà uguale a 2 se l'utente avrà digitato, ad esempio:5-5pippo n sarà uguale a 0 se l'utente avrà digitato, ad esempio:>:-p Leggere non solo dalla tastiera Tutto il resto come prtf Restituisce il numero di target tag che è stato corettamente assegnato t g,m,a; do { prtf("serisci giorno/mese/anno:" ; while ( ("%u/%u/%u", &g, &m, &a!=3 ; t ( [, lista punt.] t f( FILE* stream, [, lista punt.] t s( char* put, [, lista punt.] : legge dall'put standard f: legge da un File s: legge da una Strga Esempio di f Input Output float x,y,z; output put FILE* file_di_output= fopen ("ciao.txt", "wt"; fprtf( file_di_output,"(%f %f %f",x,y,z ; da/a termale prtf fclose(file_di_output; da/a strghe sprtf s FILE* file_di_put= fopen ("ciao.txt", "rt"; f( file_di_put,"(%f %f %f",&x,&y,&z ; fclose(file_di_put; da/a files fprtf f 5

Uso tipico di s : Lettura degli argomenti da riga di comando di un programma. Per provare il programma su Dev-C++ Impostare gli argomenti su Dev-C++ numero di argomenti + 1 argv[0] : nome del programma argv[1] : primo argomento argv[argc-1] : ultimo argomento 21 t ma(t argc, char *argv[] argv[1] argv[0] argv[2] C:> pippo.exe a o:zap Uso tipico di s (compito per casa: Input Output /* mostra le isturzioni di uso da riga di comando */ void show_usage({ output put t ma(t argc, char *argv[] { t x; if (argc<2 { /* nessun argomento: mostra l'aiuto e esci */ show_usage(; return 0; if (sprtf("", argv[1], &x!= 1 { /* il primo argomento non e' un numero: mostra l'aiuto e esci */ show_usage(; return 0; da/a termale da/a strghe prtf sprtf s /* mostra i byte che compongono il numero base 16. Due cifre a byte, separate da uno spazio es: 00 00 00 01 */ return 1; da/a files fprtf f Gestione files Files bario o modo testo? FILE* file_di_output= fopen ("ciao.txt", "wt"; /* uso il file scrittura */ fclose(file_di_output; FILE* file_di_output= fopen ("ciao.txt", "rt"; /* uso il file lettura */ fclose(file_di_output; Bario: veloce platform dependent cubi di compatibilità se si leggono files scritti con una architettura differente di solito più cociso Modo testo: più lento platform dependent file comprensibili (leggibili "umano" come testo 6

Gestione files Scrittura e lettura non formattate fwrite o fread ( void* p, t size_elem, t n_elem, FILE* f scrivono/leggono ( bario sul file restituiscono il numero di elementi scritti/letti sono operatori efficienti Gestione files tutte le funzioni per leggere e scrivere su files fwrite fprtf fread f leggono e scrivono dalla posizione corrente che viene aggiornata come effetto collaterale Gestione files la posizione corrente: e' un long t puo' essere letta long t ftell(file *fp; puo' essere cambiata: t fseek(file *fp, long t offset, SEEK_SET ; t fseek(file *fp, long t offset, SEEK_CUR ; t fseek(file *fp, long t offset, SEEK_END ; o anche, riportata all'izio del file: t rewd (FILE *fp ; 7