codice:
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <string.h>
int main()
{
fstream amici;
char tempnome[50];
int tempanni, row=0, collum=0;
//Aprimao lo stream per contare gli utenti...
amici.open("C:\\Documents and Settings\\federico\\Documenti\\lavori c++\\vacanze\\01\\amici.txt", ios::in );
if (!amici) {
cerr << "Impossibile aprire il file\n";
}
while (amici >> tempnome >> tempanni) {
row++; //Vediamo quanti nomi ci sono...
if (strlen(tempnome) > collum) collum = strlen(tempnome);
}
amici.close();
//Dichiariamo gli array che conterrano i dati, dopo aver stabilito le dimensioni da darli...
char nome[row][collum], temp[collum];
int anni[row], i=0, k, temp2;
amici.open("C:\\Documents and Settings\\federico\\Documenti\\lavori c++\\vacanze\\01\\amici.txt", ios::in );
if (!amici) {
cerr << "Impossibile aprire il file\n";
}
while (amici >> nome[i] >> anni[i])
i++;
amici.close();
//Ordiniamo l'array
for (i=0; i<row-1; i++)
for (k=0; k<row-1; k++)
if (anni[k] > anni[k+1]) { //Cambiamo l'età ed il nome...
strcpy(temp,nome[k]);
strcpy(nome[k],nome[k+1]);
strcpy(nome[k+1],temp);
temp2 = anni[k];
anni[k] = anni[k+1];
anni[k+1] = temp2;
}
//Adesso mostriamo gli utenti in ordine alfabetico...
for (i=0; i<row; i++)
cout << nome[i] << " " << anni[i] << endl;
system("PAUSE");
return 0;
}
Viste le mie basse conoscenza del c++ limitate alòle basi, sono riuscito a fare solamente questo, (il codice funziona). Però qualcuno può dirmi se è brutto (lento), o farmi qualche altra critica per migliorare il codice?