bhè ci sono parecchi errori eh....iniziamo dal for():codice:for(i=0;i<EOF;++i) fscanf(prova,"%d",v); for(i=0;i<max;i++) printf("%c",v[i]);
1) la condizione di terminazione non può essere i<EOF...non ha senso...poi non puoi incrementare ++i...si incrementa i++...che sono due cose differenti!
2) fscanf(prova,"%d",&v[i]), si utilizza come la scanf() normale, quando leggi un carattere per volta o un intero devi mettere l'& davanti!
3) infine quando vai a stampare, non puoi ciclare fino a max, perchè non è detto che il vettore contenga 200 elementi!! se ne contiene solo 3 vai a stampare cose che nn c'entrano! poi se leggi degli interi, non puoi andare a stampare con il %c....
bhè ci sono un pò d errori di sintassi base direi! ripassati qualcosa da un buon libro, come il deitel&deitel per esempio, che da una buona base secondo me!
comunque ti posto la lettura corretta! e cerca di capire cosa fa!
file input:
codice:file prova.txt: "20 30 40 50 60<eoln> 13 14 87 54<eoln> <EOF>"codice:#include <stdio.h> #define max 2000 int main () { FILE *prova; int v[max]; int i, dimensioneVet; prova=fopen("prova.txt","r"); if(prova!=NULL){ i=0; while ( fscanf(prova,"%d", &v[i]) != EOF ) { i++; } fclose(prova); dimensioneVet = i; for ( i=0; i<dimensioneVet; i++ ) { printf ("%d ", v[i]); } } else printf("il file non si può aprire\n"); getche (); return 0; }

Rispondi quotando