it:informatica:linguaggio_c:lettura_file_1
Return to Home page
If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it
You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/it/informatica/linguaggio_c/lettura_file_1?do=diff&rev2%5B0%5D=&rev2%5B1%5D=1551188125&difftype=sidebyside
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | it:informatica:linguaggio_c:lettura_file_1 [2024/04/08 22:35] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Lettura file (Esempio 1) ====== | ||
+ | **Concetti: | ||
+ | Funzioni di apertura, chiusura e lettura da file. Esempio di lettura di file riga per riga, parola per parola, carattere per carattere e di file strutturati (in cui in ogni riga ci sono campi di tipo diversi) | ||
+ | **Testo: | ||
+ | Realizzare un programma che: | ||
+ | * Legga il seguente file: | ||
+ | <file txt prova.txt> | ||
+ | Prima riga | ||
+ | Seconda riga | ||
+ | </ | ||
+ | * Una riga per volta (riga per riga) | ||
+ | * Una parola per volta (parola per parola) | ||
+ | * Un carattere per volta (carattere per carattere) | ||
+ | * Legga il seguente file in cui in ogni riga è strutturata ed è composta da una stringa (un nome), un numero intero ed un numero reale: | ||
+ | <file txt prova2.txt> | ||
+ | Stefano 122333 23.5 | ||
+ | Giulia 122334 29.5 | ||
+ | </ | ||
+ | * Il contenuto letto dai due file dovrà essere stampato su schermo (nel caso della lettura del file carattere per carattere si metta uno spazio tra un carattere ed il successivo) | ||
+ | |||
+ | **Soluzione: | ||
+ | <file C lettura_file_1.c> | ||
+ | /* Esempio di lettura di file riga per riga, parola per parola, carattere per carattere e di file strutturati (in cui in ogni riga ci sono campi di tipo diversi) */ | ||
+ | |||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | #define LUN 50 | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | FILE *fp; | ||
+ | |||
+ | char riga[LUN+1]; | ||
+ | char ch; | ||
+ | int intValue; | ||
+ | float floatValue; | ||
+ | |||
+ | /* Lettura contenuto file prova.txt */ | ||
+ | /* Apertura file */ | ||
+ | printf(" | ||
+ | fp = fopen(" | ||
+ | |||
+ | /* Controllo se il file e' stato aperto senza errori */ | ||
+ | if (fp == NULL){ | ||
+ | printf(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | /* Lettura del file riga per riga */ | ||
+ | printf(" | ||
+ | while ( fgets(riga, LUN, fp) != NULL ) { | ||
+ | | ||
+ | } | ||
+ | | ||
+ | /* Sconsigliato */ | ||
+ | /* | ||
+ | rewind(fp); | ||
+ | |||
+ | printf(" | ||
+ | fgets(riga, LUN, fp); | ||
+ | while ( !feof(fp) ) { | ||
+ | printf(" | ||
+ | fgets(riga, LUN, fp); | ||
+ | } | ||
+ | */ | ||
+ | |||
+ | rewind(fp); | ||
+ | |||
+ | /* Lettura del file parola per parola */ | ||
+ | printf(" | ||
+ | while ( fscanf(fp, " | ||
+ | | ||
+ | } | ||
+ | |||
+ | rewind(fp); | ||
+ | |||
+ | /* Lettura del file carattere per carattere */ | ||
+ | printf(" | ||
+ | while ( (ch=getc(fp)) != EOF ) { | ||
+ | | ||
+ | } | ||
+ | |||
+ | fclose(fp); /* Chiusura del file */ | ||
+ | |||
+ | /* Lettura file prova2.txt */ | ||
+ | /* Nota: il file contiene per ogni riga una stringa, un intero e un numero reale */ | ||
+ | |||
+ | /* Apertura file */ | ||
+ | printf(" | ||
+ | if ( (fp = fopen(" | ||
+ | printf(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | /* Primo metodo di lettura */ | ||
+ | /* Consigliato perche' | ||
+ | printf(" | ||
+ | while ( fscanf(fp, "%s %d %f", riga, & | ||
+ | printf(" | ||
+ | } | ||
+ | | ||
+ | rewind(fp); | ||
+ | |||
+ | /* Secondo metodo di lettura */ | ||
+ | printf(" | ||
+ | while ( fgets(riga, LUN, fp) != NULL ) { /* E' consigliabile il metodo precedente */ | ||
+ | sscanf(riga, | ||
+ | printf(" | ||
+ | } | ||
+ | |||
+ | fclose(fp); /* Chiusura file */ | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </ |
If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it
You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/it/informatica/linguaggio_c/lettura_file_1?do=diff&rev2%5B0%5D=&rev2%5B1%5D=1551188125&difftype=sidebyside
/web/htdocs/www.skenz.it/home/data/pages/it/informatica/linguaggio_c/lettura_file_1.txt · Last modified: 2024/04/08 22:35 by 127.0.0.1