Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] File di testo e ciclo che viene eseguito una sola volta

    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
    Ultima modifica di hackthomas99; 27-08-2020 a 11:30

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,331
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.