Salve,
premetto che ho pochi mesi di esperienza in C.
Vorrei creare un programma in cui prendo in input due file di testo,
il primo con CODICE, NOME e PREZZO di *qualcosa di indefinito*, il secondo con CODICE e PREZZO_AGGIORNATO.
Il programma deve scrivere un file con le varie informazioni del primo file, aggiornando il PREZZO.
Ho usato array di strutture, così da poter immagazzinare tante *cose*.
Ho prima acquisito da file le info, poi le ho messe negli array, e ho fatto delle stampe di verifica. Tutto ok.
Ora però, nell'ultima parte del programma, non riesco a scrivere una funzione funzionante per aggiornare le strutture negli array.. ho provato con questo:
provo ad eseguire l'exe, non mi crea il file che apro successivamente.. si blocca in questo ciclo.codice://i e j sono indici di posizione dei due array (il primo (a) con le info e il secondo (b) con gli aggiornamenti// i=0; j=0; //n è il numero di *cose da aggiornare* presenti nel primo array// while(j<n) { if(a[i].cod == b[j].cod) { a[i].pre=b[j].pre; i++; } else j++; }
Che sapete dirmi?
Qui vi posto l'intera funzione di aggiornamento del programma, con le varie stampe di verifica.
codice:void Aggiorna_info(Aerei a[],Aggiornamenti b[],char nomefile2[],char nomefile3[]) { int n; int i; int j; n=Conta_righe(nomefile2); printf("Il file degli aumenti e' di %d righe ",n); j=0; i=0; while(j<n) { if(a[i].cod == b[j].cod) { a[i].pre=b[j].pre; i++; } else j++; } FILE* f; f=fopen(nomefile3,"w"); if(f==NULL) { printf("errore nell'aperture del file "); } else { i=0; n=Conta_righe(nomefile1); while(i<n) { fprintf(f,"%s %s %s %s %d %f", a[i].cod, a[i].par, a[i].cit, a[i].arr, a[i].pos, a[i].pre); i++; } } fclose(f); return; }

Rispondi quotando
