Salve, sto realizzando questo programma, e non so perchè il ciclo che ho segnato nel codice viene eseguito una sola volta, come posso risolvere? Grazie.
codice:#include <stdio.h>#include <stdlib.h> void LeggereFile(FILE **fp); void LeggereVettoreADaFile(FILE *fp, int *vettoreA); int ContaElementiFile(FILE *fp); void AllocareVettoreA(int *vettoreA, int dim); void ScrivereElementoInVettoreA(int i, int j, int vettoreA[]); int main(void){ FILE *fp; int *vettoreA = NULL; //int *vettoreB; LeggereFile(&fp); LeggereVettoreADaFile(fp, vettoreA); //ScrivereVettoreB(vettoreA); //StampareVettoreB(vettoreB); system("pause"); return 0; } void LeggereFile(FILE **fp){ if((*fp = fopen("file.txt","r")) == NULL){ printf("errore apertura file\n"); } return; } void LeggereVettoreADaFile(FILE *fp, int *vettoreA){ int i; int j = 0; int dim = ContaElementiFile(fp); AllocareVettoreA(vettoreA, dim); rewind(fp); while(!feof(fp)){ <--------------------------------------------viene eseguito solo una volta printf("se questo messaggio viene stampato il ciclo funziona"); fscanf(fp, "%d%*c ", &i); ScrivereElementoInVettoreA(i, j, vettoreA ); j++; } return; } int ContaElementiFile(FILE *fp){ int i = 0; while(!feof(fp)){ fscanf(fp, "%*d%*c "); i++; } return i; } void AllocareVettoreA(int *vettoreA, int dim){ vettoreA = (int *) malloc (dim * sizeof(int)); return; } void ScrivereElementoInVettoreA(int i, int j, int *vettoreA){ *(vettoreA + j) = i; return; }
il contenuto del file di testo è :
2, 3, 5, 2, 7, 4, 3, 2, -1





Rispondi quotando
