PDA

Visualizza la versione completa : [C] Efficienza nella lettura di un file contenente molti valori


fisica
19-01-2007, 23:33
Devo leggere dei dati da un file e sistemarli in modo opportuno in array

ho scritto questo codice (le variabili chiaramente sono dichiarate prima)

FILE *dati = fopen(f, "r");
for (i=0;i<n;i++) {
fscanf(dati,"%d",&a);
d[i]=malloc(a,...);
for (j=0;j<a;j++) {
fscanf(dati,"%d %f",&(d[i][j].a),&(d[i][j].b));
}
}
fclose(dati);

in totale in questo file ci sono interi e float e li devo leggere in questo modo... il programma funziona, ma trattandosi di almeno 10000000 di valori la funzione risulta lenta...
soprattutto rispetto alla funzione successiva che manipola questi dati...

c'è un modo per migliorare la velocità di lettura?

grazie

Xaratroom
20-01-2007, 18:01
Provata la fread ?
Noto che può essere usata, ma no so dirti se è migliore....
Eventualmente puoi provare a leggerli in assembly (se lo vuoi usare)...

Loading