Ciao!
Oggi posto il codice riveduto e corretto dell’esercizio che una mia collega mi ha spedito (quello dell’altra volta).
Rivedendolo assieme ho potuto quindi assistere alla rilettura del codice e alla sua correzione.
Posto questo codice testato su una macchina Windows. Per prima cosa create un file .txt (non word perchè contiene caratteri che incasinano la lettura) in cui dovete scrivere 1 2 3 4 5 6 7 8 9 10.
Aprite un editor e scrivete:
#include
//importa libreria
#define LUNGA 50
//niente punto e virgola nel define
main() {
char title[LUNGA]=”";
/*inizio fase di apertura file, char sta per carattere in inglese. Sto dicendo che il titolo è lungo 50 caratteri. Nota: il =”" è stato ,messo dopo aver visto che c’erano dei problemi ad aprire il file nel primo modo*/
FILE *file1;
//inizializzazare un file nel quale leggerò i numeri
printf(“Titolo del file di lettura: \n”);
//stampa su video il titolo del file
scanf(“%s”, title);
/*scanf legge il nome e %s significa stringa, Sono due operazioni diverse il titolo e l’apertura del file*/
if((file=fopen(title,”r”))==NULL)
//fopen ha delle proprietà. “r” sta per read
{printf(“Il file non esiste!\n”); exit(0);}
/*exit 0 significa che se il file non esiste il computer esce anzichè continuare un processo che darebbe errore lo stesso*/
//adesso leggo 10 numeri da un file che deve contenerli
int i,numero=0, somma=0;
for(i=0;i<10;i=i+1)
//sto dicendo che il valore di i va da 0 a 9
{fscanf(file, "%d", &numero);
/*fscanf legge da un file già aperto mentre scanf legge da video*/
printf("%d\n", numero);
//scrivo il numero che leggo
somma = somma + numero;
printf("sono arrivato qua") //controll lettura
char titolo[lunga];
//è un array ed è una sequenza di 50 caratteri
FILE *file1;
//sto dichiarando la variabile file su cui vado a scrivere
printf(“Titolo del file di scrittura: \n”);
scanf(“%s”, titolo);
if((file1=fopen(titolo,”w”))==NULL) {printf(“Non posso aprire il file!\n”);
exit(0);}
fprintf(file1, “somma dei numeri: %d\n”, somma);
//scrivi nel file1 la somma
}
Mamma mia! Allora a questo punto ho lanciato l’eseguibile e gli ho detto di importare il file prova.txt che ho fatto in precedenza ma purtroppo mi legge tutto 0 e di conseguenza quando scrivo il nome del file (esempio mucca.txt) mi si visualizza la somma è uguale a 0.
Dove sbaglio?