Concetti Chiave
- Il file binario "interi.dat" contiene una sequenza di interi positivi da modificare in base a una somma progressiva.
- Il programma modifica ogni elemento, eccetto il primo, incrementandolo con la somma di tutti gli elementi precedenti.
- Il codice include due funzioni principali: una per creare il file e inserire i numeri, e un'altra per modificare i valori seguendo la logica specificata.
- La modifica del file avviene tramite lettura e scrittura binaria, utilizzando la funzione fseek per navigare tra i dati.
- È prevista una stampa di controllo per verificare il contenuto del file "interi.dat" dopo la modifica.
Dato (lo devi creare tu) il file binario di interi positivi "interi.dat", modificarlo nel seguente modo: ogni elemento, ad eccezione del primo, deve essere incrementato di un valore pari alla somma di tutti gli elementi precedenti.
Esempio:
File "interi.dat" prima: 1 4 4 9 6 9 19
File "interi.dat" modificato: 1 5 9 18 24 33 52
#include
#include
int main()
{
FILE *fpInteri;
int num;
int totNumeri;
int i;
fpInteri=fopen("interi.dat","wb");
if(fpInteri == NULL)
{
printf("Errore nella creazione del file di output");
getchar();
exit(1);
}
do
{
printf("Quanti numeri vuoi inserire?\n");
scanf("%d",&totNumeri);
fflush(stdin);
}while(totNumeri
for(i=0; i
printf("Digita un numero\n");
scanf("%d",&num);
fflush(stdin);
fwrite(&num,sizeof(int),1,fpInteri);
}
fclose(fpInteri);
getchar();
return 0;
}
#include
#include
int main()
{
FILE * fpInteri;
int num;
int somma=0;
fpInteri=fopen("interi.dat","r+b");
if(fpInteri == NULL)
{
printf("Errore nell'apertura del file di ingresso\n");
getchar();
exit(1);
}
fread(&num,sizeof(int),1,fpInteri);
while(!feof(fpInteri))
{
somma+=num;
fseek(fpInteri,-1L*sizeof(int),SEEK_CUR);
fwrite(&somma,sizeof(int),1,fpInteri);
fseek(fpInteri,0L,SEEK_CUR);
fread(&num,sizeof(int),1,fpInteri);
}
fclose(fpInteri);
//stampa file per test
fpInteri=fopen("interi.dat","rb");
while(fread(&num,sizeof(int),1,fpInteri))
{
printf("%d\n",num);
}
fclose(fpInteri);
getchar();
return 0;
}