Buonasera a tutti. Avrei bisogno di una mano per capire come svolgere questo esercizio, fondamentale per superare l'esame base di programmazione in C. Mi trovo a dover scrivere in maniera sequenziale su file di testo una serie di record (del tipo nome, anno, età, quindi char, int, int). Questi record vanno dunque letti e stampati a schermo ordinati in maniera crescente in base al valore anno. Ora, credo che un semplice bubble sort dovrebbe poter andare per una quantità ridotta di dati (parliamo di 6 o 7 record). Tuttavia, pur conoscendo l'algoritmo applicato a semplici vettori, non saprei come utilizzarlo per questo esercizio su file.
Ecco quanto ho scritto finora.
FILE * puntatore;
int main(){
if((puntatore=fopen("newFile.txt", "r"))==NULL){
puts("Errore");
}else{
char nome[20];
int anno;
int years;
puts("NOME ANNO ANNI");
fscanf(puntatore, "%19s%d%d", nome, &anno, &years);
while(!feof(puntatore)){
printf("%s %d %d\n", nome, anno, years);
fscanf(puntatore, "%19s%d%d", nome, &anno, &years);
}
fclose(puntatore);
}
}
Questo codice legge i record dal file e li stampa leggendoli uno dopo l'altro, come posso applicare il bubble sort (che credo sia il più semplice a livello di implementazione) per ordinare i record in base al valore anno?