Puntatori a file

di il
7 risposte

Puntatori a file

Ciao, dopo aver creato un file di testo ho cercato di inserire i dati del file in due array con un puntatore a file, ma mi restituisce due array con tutti zeri, come posso fare?


  double *A;
  
  A = (double *) malloc(N*sizeof(double));
  if(A == NULL)
    {
      printf("malloc di A fallita. \n");
      exit(EXIT_FAILURE);
    }

 double *tempo;
  
  tempo = (double *) malloc(N*sizeof(double));
  if(tempo == NULL)
    {
      printf("malloc di tempo fallita. \n");
      exit(EXIT_FAILURE);
    }
FILE *fpr;

 fpr=fopen("puntiNx.dat", "r");

  if(fpr==NULL)
  {
    printf("Errore nell'apertura del file. Esco.\n");
    exit(1);
  }


for(i=0;i<N;i++)
{
  fscanf(fpr,"%lf %lf\n", &tempo[i], &A[i]);
}

  fclose(fpr);
  

7 Risposte

  • Re: Puntatori a file

    La fscanf legge i dati, tu li vuoi scrivere? Perché con fpr=fopen("puntiNx.dat", "w"); apri il file in scrittura non in lettura


    P.S. Usa i tag CODE per postare il codice nel forum
  • Re: Puntatori a file

    Si ho scritto male ma nel codice ho scritto 'r'. Grazie
  • Re: Puntatori a file

    Sicuro che nel file ci siano i dati che pensi ci siano? Oppure il file è vuoto?

    Comunque, posta il codice completo (quando visualizzi i dati letti?) con i tag CODE perché non si capisce quando utilizzi la variabile i.

    Per capirci nel ciclo potresti scrivere
    
    	for (i = 0; i < N; i++)
    	{
    		fscanf(fpr, "%lf %lf", &tempo[i], &A[i]);
    		printf("%lf %lf\n", tempo[i], A[i]);
    	}
    
  • Re: Puntatori a file

    Sì i dati sul file ci sono. Ho gia provato anche a stamparli come hai detto. Quando li stampa nel ciclo li stampa giusti. Ma una volta finito il ciclo se ristampo l'array ci sono solo zeri.
  • Re: Puntatori a file

    Mostra il codice di cui parli (quello della ristampa dei dati) altrimenti come ti dico dove sbagli?
  • Re: Puntatori a file

    
    for(i=0;i<N;i++){
      printf("%10lf %10lf \n", tempo[i], A[i])}
      
    
    E mi stampa:
    
    0.00000000  0.00000000
    0.00000000  0.00000000
    0.00000000  0.00000000
    ....                    ....
    0.00000000  0.00000000
    
  • Re: Puntatori a file

    Ma dove hai scritto quel ciclo?

    Te lo chiedo l'ultima volta... posta tutto il codice del programma, compreso tutto il main e non solo due righe
Devi accedere o registrarti per scrivere nel forum
7 risposte