esercizi file - uniroma1.itesercizi esercizio 8.6 scrivere un programma che legga caratteri dalla...
TRANSCRIPT
![Page 1: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/1.jpg)
Esercizi FileCorso di Fondamenti di InformaticaIngegneria delle Comunicazioni – BCORIngegneria Elettronica – BELR
Unità 8
Domenico Daniele Bloisi
Si ringrazia Raffaele Nicolussi
![Page 2: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/2.jpg)
Docenti
Parte I – prof. Silvio [email protected]@dis.uniroma1.it
http://www.dis.uniroma1.it/~salza/fondamenti.htm
Parte II – ing . Domenico Daniele Bloisi, [email protected]
http://www.dis.uniroma1.it/ ~bloisi /didattica /fondinf1112.htmlhttp://www.dis.uniroma1.it/ ~bloisi /didattica /fondinf1112.html
Nota: %7E corrisponde alla tilde ~
2011/2012Esercizi FileUnità 8
Pagina 2
![Page 3: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/3.jpg)
Informazioni Generali
ing. Domenico Daniele Bloisi, PhD
Dipartimento di Informatica e SistemisticaVia Ariosto 25Via Ariosto 25(adiacente Piazza Dante,
A fermate Manzoni, Vittorio Emanuele,Tram 3 fermata via Labicana)
mailto:[email protected]
http://www.dis.uniroma1.it/~bloisi
2011/2012Esercizi FileUnità 8
Pagina 3
![Page 4: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/4.jpg)
Ricevimento
Su appuntamento. Inviare una email per conferma.
DIS, via Ariosto 25DIS, via Ariosto 25II piano, stanza B211
Si consiglia di controllare la bacheca degli avvisihttp://www.dis.uniroma1.it/~bloisi/didattica/fondin f1112.html#Avvisi
2011/2012Esercizi FileUnità 8
Pagina 4
![Page 5: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/5.jpg)
Uso dei File in C
1. Dichiarare il descrittore del fileFILE *<descrittore>;
Esempio:FILE* fd;
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 >:
Pagina 52011/2012
• <modo_apertura >:es. "w" se il file è aperto in scritturaes. "r" se il file è aperto in lettura
Esercizi FileUnità 8
fd = fopen("C:/code/dati.txt", "w");
![Page 6: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/6.jpg)
Uso dei File in C
3. Controllo della corretta aperturaif(fd != NULL) {
4. Esecuzione delle operazioni di lettura o scrittura utilizzando il descrittore del file
5. Il file viene chiusofclose (<descrittore>);
fprintf(fd, "dato");
Pagina 62011/2012
fclose (<descrittore>);
Esercizi FileUnità 8
}fclose(fd);
![Page 7: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/7.jpg)
Esempio#include <stdio.h>#include <stdlib.h>
modalitàscritturaint main()
{FILE *fp;int x = 1;if ((fp = fopen("file.txt","w")) != NULL){
fprintf(fp, "stampa n. %d su file \ n", x);
scrittura
Pagina 72011/2012Esercizi FileUnità 8
fprintf(fp, "stampa n. %d su file \ n", x);}fclose(fp);
}
![Page 8: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/8.jpg)
Esecuzione
Se il file denominato “file.txt” non esiste nella directory contenente l’eseguibile che traduce il codice, “file.txt” viene creato.codice, “file.txt” viene creato.
Se “file.txt” esiste già, il suo contenuto viene cancellato.
Successivamente, il file “file.txt” viene riempito
Pagina 82011/2012Esercizi FileUnità 8
Successivamente, il file “file.txt” viene riempito con la stringa argomento della fprintf .
![Page 9: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/9.jpg)
Esecuzione
Pagina 92011/2012Esercizi FileUnità 8
![Page 10: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/10.jpg)
Attenzione
Mai dimenticare di richiudere uno stream (dopo averlo aperto) al termine del suo (dopo averlo aperto) al termine del suo utilizzo.
L’istruzione da utilizzare è laint fclose(FILE *file_pointer)che chiude un FILE* passato come argomento
Pagina 102011/2012Esercizi FileUnità 8
argomento
![Page 11: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/11.jpg)
Valore di ritorno per fclose
fclose returns '0' if successful(including when file_pointer is 'NULL' or (including when file_pointer is 'NULL' or not an open file);otherwise, it returns 'EOF'.
http://www.cplusplus.com/reference/clibrary/cstdio/ fclose/
Pagina 112011/2012Esercizi FileUnità 8
![Page 12: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/12.jpg)
Esercizio
Scrivere un programma che chieda all’utente di inserire da tastiera il nome per un file ed di inserire da tastiera il nome per un file ed una stringa che sarà scritta in esso.
Il programma deve creare il file e scrivere in esso la stringa digitata dall’utente.Un messaggio di errore deve essere stampato
Pagina 122011/2012Esercizi FileUnità 8
Un messaggio di errore deve essere stampato a video in caso di insuccesso.
![Page 13: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/13.jpg)
Soluzione#include <stdlib.h>#include <stdio.h>
int main () {int main () {char nomefile[80], parola[80];printf("digita il nome del file da creare:\n");scanf("%s", nomefile);printf("digita una parola da scrivere sul file:\n") ;scanf("%s", parola);FILE *fp;if ((fp = fopen(nomefile,"w")) != NULL) {
fprintf ( fp , " %s", parola);
Pagina 132011/2012Esercizi FileUnità 8
fprintf ( fp , " %s", parola);}else
fprintf(stderr, "ERRORE\n");fclose(fp);
}
![Page 14: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/14.jpg)
Esempio di esecuzione
digita il nome del file da creare:prova.txtdigita una parola da scrivere sul file:digita una parola da scrivere sul file:parole parole parole
Che cosa provoca l’esecuzione del programma con questi input?
Pagina 142011/2012Esercizi FileUnità 8
con questi input?
![Page 15: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/15.jpg)
Modalità di accesso ai file
rApre un file esistente inmodalità lettura (read)posizionandosi all’iniziodel file.del file.
w
Crea un nuovo file e loapre in modalità scrittura(write) posizionandosiall’inizio del file. Se il fileesiste i dati precedentivengono eliminati.
Apre un file esistente in
Pagina 152011/2012Esercizi FileUnità 8
aApre un file esistente inmodalità append; lascrittura avviene a partiredalla fine del file.
![Page 16: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/16.jpg)
Modalità di accesso ai file
r+Apre un file esistente inmodalità lettura e scritturaposizionandosi all’iniziodel file.del file.
w+Crea un nuovo file e lo apre in modalità scrittura e lettura.Se il file esiste i dati precedenti vengono eliminati.
a+
Apre un file esistente o necrea uno nuovo in modalitàappend ; la scrittura avviene a
Pagina 162011/2012Esercizi FileUnità 8
a+ append ; la scrittura avviene a partire dalla fine del file mentre la posizione di lettura può essere scelta.
![Page 17: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/17.jpg)
I/O su stdin e stdout
getchar(void)Legge il prossimo carattere dal flusso di input standard;equivalente a getc ( stdin ) .equivalente a getc ( stdin ) .
gets(char *str) Legge i caratteri da stdin fino a newline o fino alla fine del file.
printf(…)
Scrive uno o più valori sul flusso di output standard in accordo con le regole di formazione definite dall’utente.
Pagina 172011/2012Esercizi FileUnità 8
definite dall’utente.
putchar(int ch)Scrive un carattere sul flusso di output standard; equivalente aputc(stdout) .
![Page 18: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/18.jpg)
I/O su stdin e stdout
puts(const char *str)Scrive una stringa di caratteri sustdout , inserendo un carattere dinewline al termine della stringa.
scanf(…)
Legge uno o più valori da stdin ,interpretandoli in accordo con leregole di formattazione definitedall’utente.
Pagina 182011/2012Esercizi FileUnità 8
![Page 19: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/19.jpg)
I/O su FILE
fgetc(FILE *stream)Legge un carattere da un flusso e fa puntare l’indicatore del file al carattere successivo.
fgets( char *str,int num,FILE *stream )
Legge una stringa da un flusso di input specificato. Consente di specificare il numero massimo dicaratteri da leggere.
Pagina 192011/2012Esercizi FileUnità 8
![Page 20: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/20.jpg)
Fine di un File
feof (FILE *stream)
Controlla se è stata raggiunta lafine del file, associato allostream , durante la precedenteoperazione di lettura
Pagina 202011/2012Esercizi FileUnità 8
![Page 21: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/21.jpg)
Esempio feof
#include <stdio.h>#include <stdlib.h>
int main() {int main() {long n = 0;FILE* fd;fd = fopen("lettera.txt", "r+");if(fd == NULL) {
exit(EXIT_FAILURE);}while(!feof(fd)) {
fgetc(fd);n++;
Pagina 212011/2012Esercizi FileUnità 8
n++;}printf("Letti %ld bytes\n", n);fprintf(fd, "<aggiunta>");fclose(fd);
}
![Page 22: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/22.jpg)
Input
Pagina 222011/2012Esercizi FileUnità 8
![Page 23: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/23.jpg)
Esecuzione
Letti 40 bytes
Pagina 232011/2012Esercizi FileUnità 8
![Page 24: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/24.jpg)
Esempio feof modificatoint main() {
long n = 0;FILE* fd;fd = fopen("lettera.txt", "r+");fd = fopen("lettera.txt", "r+");if(fd == NULL) {
exit(EXIT_FAILURE);}fprintf(fd, "<aggiunta>");while(!feof(fd)) {
printf("prima di fgetc\n");fgetc(fd);printf("dopo di fgetc\n");n++;
Pagina 242011/2012Esercizi FileUnità 8
n++;}printf("Letti %ld bytes\n", n);fclose(fd);
}
![Page 25: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/25.jpg)
Esecuzione…prima di fgetcdopo di fgetcprima di fgetcprima di fgetcdopo di fgetcprima di fgetcdopo di fgetcprima di fgetcdopo di fgetcprima di fgetcdopo di fgetcprima di fgetcdopo di fgetc
Si entra in un loop infinito
Pagina 252011/2012Esercizi FileUnità 8
dopo di fgetcprima di fgetcdopo di fgetcprima di fgetc…
![Page 26: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/26.jpg)
Esempio feof correttamente modificato
int main() {long n = 0;FILE* fd;fd = fopen("lettera.txt", "r+");if(fd == NULL) {if(fd == NULL) {
exit(EXIT_FAILURE);}fprintf(fd, "<aggiunta>");fclose(fd);fd = fopen("lettera.txt", "r+");if(fd == NULL) {
exit(EXIT_FAILURE);}while(!feof(fd)) {
printf("prima di fgetc\n");fgetc(fd);
Pagina 262011/2012Esercizi FileUnità 8
fgetc(fd);printf("dopo di fgetc\n");n++;
}printf("Letti %ld bytes\n", n);fclose(fd);
}
![Page 27: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/27.jpg)
Esecuzione…prima di fgetcdopo di fgetcprima di fgetcprima di fgetcdopo di fgetcprima di fgetcdopo di fgetcprima di fgetcdopo di fgetcprima di fgetcdopo di fgetcprima di fgetcdopo di fgetc
Pagina 272011/2012Esercizi FileUnità 8
dopo di fgetcprima di fgetcdopo di fgetcLetti 40 bytes
![Page 28: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/28.jpg)
Esempio: conteggio caratteri in un file
int main( ) {FILE *fPtr ;char ch ;long int cont = 0 ;long int cont = 0 ;if((fPtr = fopen("lettera.txt", "r")) != NULL){
while( fscanf(fPtr, "%c", &ch ) != EOF ) {cont++ ;
}printf( "cont = %ld\n" , cont ) ;// cont = numero caratteri in "lettera.txt"fclose ( fPtr ) ;
Pagina 282011/2012Esercizi FileUnità 8
fclose ( fPtr ) ;}else
printf( "errore apertura file" ) ;return EXIT_SUCCESS;
}
![Page 29: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/29.jpg)
Esecuzione
cont = 39
Perché otteniamo un valore diverso rispetto a “Esempio feof “ ?
Pagina 292011/2012Esercizi FileUnità 8
![Page 30: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/30.jpg)
Esempio: acquisizione array da file
Si assuma di avere un file denominato “comp.dat”di 10 righe che rappresenti un array di dieci eleme ntiinteri, con ogni elemento memorizzato in una riga.interi, con ogni elemento memorizzato in una riga.
Pagina 302011/2012Esercizi FileUnità 8
![Page 31: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/31.jpg)
Esempio: acquisizione array da filescheletro del programma…FILE *frPtr ;int v[ max_d ] , pos ;……/* Formato "comp.dat": 1 int per linea; numerolinee = max_d */if ((( frPtr = fopen( "comp.dat" , "r" )) != NULL ) ){
for( pos = 0 ; pos < max_d ; pos++ )fscanf( frPtr , "%d" , &v[ pos ] ) ;
…
Pagina 312011/2012Esercizi FileUnità 8
…fclose( frPtr ) ;
}else printf( "errore apertura file\n" ) ;…
![Page 32: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/32.jpg)
Esempio: acquisizione array da filecodice completo#include <stdio.h>#include <stdlib.h>
int main( ) {int max_d = 10;int max_d = 10;FILE *frPtr;int v[max_d], pos;if ((( frPtr = fopen( "comp.dat" , "r" )) != NULL )){
for( pos = 0 ; pos < max_d ; pos++ )fscanf( frPtr , "%d" , &v[pos] ) ;
fclose( frPtr ) ;}
Pagina 322011/2012Esercizi FileUnità 8
}else printf( "errore apertura file\n" ) ;for( pos = 0 ; pos < max_d ; pos++ )
printf("%d ", v[ pos ] ) ;printf("\n");return EXIT_SUCCESS;
}
![Page 33: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/33.jpg)
Esecuzione
12 34 56 78 99 13 14 56 654 -12
Pagina 332011/2012Esercizi FileUnità 8
![Page 34: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/34.jpg)
Trasformare caratteri in interi
La funzione atoi converte una stringa in un intero.
Ad esempio, è utile quando si debba fare dei calcoli numerici con parametri passati da riga di comando. Infatti, i calcoli richiederanno dei tipi numerici (e.g., int ) e non delle stringhe (tipo char * ).
Pagina 342011/2012Esercizi FileUnità 8
(tipo char * ).
![Page 35: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/35.jpg)
La funzione atoi
NAME:atoi - convert a string to an integer.
SYNOPSIS:SYNOPSIS:#include <stdlib.h>
int atoi(const char *nptr);DESCRIPTION:
The atoi() function converts the initial portion of the string pointed to by nptr to int.
Pagina 352011/2012Esercizi FileUnità 8
portion of the string pointed to by nptr to int.RETURN VALUE:
The converted value.
![Page 36: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/36.jpg)
Esercizio
Realizzare un programma sommafile che prenda tre parametri in ingresso:<A> primo addendo;<A> primo addendo;<B> secondo addendo;<C> nome di un file.Il programma deve sommare A e B, creare un file denominato con il nome C e stampare il risultato nel file.
Pagina 362011/2012Esercizi FileUnità 8
risultato nel file.
![Page 37: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/37.jpg)
Esempio
>sommafile -1 15 result.txt
Pagina 372011/2012Esercizi FileUnità 8
![Page 38: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/38.jpg)
Esecuzione
Pagina 382011/2012Esercizi FileUnità 8
![Page 39: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/39.jpg)
Funzioni di conversione
Convertono stringhe che contengono interi oreali in numeri interi o realireali in numeri interi o reali
Permettono di trattare stringhe (testi) composte da caratteri qualsiasi e di estrarre da essi le parti numeriche
libreria <stdlib.h >
Pagina 392011/2012Esercizi FileUnità 8
libreria <stdlib.h >
![Page 40: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/40.jpg)
Funzioni di conversione
Pagina 402011/2012Esercizi FileUnità 8
![Page 41: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/41.jpg)
Funzioni di conversione
Pagina 412011/2012Esercizi FileUnità 8
![Page 42: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/42.jpg)
Funzioni di conversione
Pagina 422011/2012Esercizi FileUnità 8
![Page 43: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/43.jpg)
Funzioni di conversione
Pagina 432011/2012Esercizi FileUnità 8
![Page 44: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/44.jpg)
Funzioni di conversione
Pagina 442011/2012Esercizi FileUnità 8
![Page 45: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/45.jpg)
Esercizi
Esercizio 8.5
Scrivere una funzione che preso in ingresso il Scrivere una funzione che preso in ingresso il nome di un file contenente interi, lo modifichi in modo da contenere gli stessi interi, ma in ordine decrescente.
Pagina 452011/2012Esercizi FileUnità 8
![Page 46: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/46.jpg)
Esercizi
Esercizio 8.6
Scrivere un programma che legga caratteri dalla Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il carattere '$', nel qual caso il programma deve terminare verificando la corretta chiusura del file.
Pagina 462011/2012Esercizi FileUnità 8
![Page 47: Esercizi File - uniroma1.itEsercizi Esercizio 8.6 Scrivere un programma che legga caratteri dalla tastiera e li scriva su un file “copia.txt” fino a che l'utente non immetta il](https://reader035.vdocuments.site/reader035/viewer/2022070223/614625d68f9ff812542013c7/html5/thumbnails/47.jpg)
Esercizi
Esercizio 8.7
Scrivere un programma che legga un file di testo Scrivere un programma che legga un file di testo “m.txt” contenente 5 righe, con 5 interi separati da uno spazio per ogni riga. Il programma deve leggere il file, creare una matrice 5x5 contenente i dati presenti in “m.txt” e stamparne la trasposta.
Pagina 472011/2012Esercizi FileUnità 8
trasposta.