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:
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++;
}
provo ad eseguire l'exe, non mi crea il file che apro successivamente.. si blocca in questo ciclo.
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;
}