E' vero che ho un pò di sonno, ma non riesco a capire perchè non funziona...! Ho consultato tutte le risorse disponibili, sia on line, che su carta... eppure c'è ancora qualcosa che non va...
Passo al dunque. Devo leggere un file:
Questo file campione costituisce l'input "prova.dat"3.44002 0.008 -41.9 -23.9 -4.5 0 97 25
3.22044 0.008 -41.9 -23.7 -4.5 1 97 25
1.18835 0.008 -43.1 -21.9 8.3 10 161 19
1.76625 0.008 -42.9 -21.9 8.3 10 161 20
2.04581 0.008 -42.3 -21.9 -4.1 10 99 23
Questo è il codice (scrivo solo le parti essenziali).
La compilazione procede correttamente. L'output è il seguente:#include <stdio.h>
#include <math.h>
#include <stdlib.h>double a,b,c,d,e;
int l,m,n;
main()
{
char InputFile[26];
FILE *input;
strcpy(InputFile,"prova.dat");
printf("InputFile: %s\n\n",InputFile);
if ((input = fopen(InputFile, "r")) == NULL)
{ printf("\nCannot open file %s\n\n",InputFile);
return(1);
}
printf("*** InputFile: %s OPEN ****\n\n",InputFile);
nline = 0;
while (!feof(input))
{ fscanf(input,"%f%f%f%f%f%i%i%i",&a,&b,&c,&d,&e,&l, &m,&n);
printf("%f",a); Qui io mi aspetto di vedere il valore 3.44002
nline=nline+1;
printf("\n nline = %i\n\n",nline);
}
fclose(input);
printf("*** InputFile: %s CLOSED ****\n\n",InputFile);
return 0;
}
Che sta succedendo? Sembra come se la funzione scanf lega tutti ZERO!!! Dove è l'errore? Come faccio a leggere i valori contenuti nel file di ingresso?InputFile: /prova.dat
*** InputFile: /prova.dat OPEN ***
0.000000
nline = 1
0.000000
nline = 2
0.000000
nline = 3
0.000000
nline = 4
0.000000
nline = 5
*** InputFile: /prova.dat CLOSED ***