RISOLTO fprintf non scrive su file

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

toni1705

Nuovo Utente
Messaggi
98
Reazioni
9
Punteggio
28
Posso sapere perchè non viene stampato sul file il valore della media? Dove sbaglio?
C:
#include <stdio.h>
#include <stdlib.h>

int main()
{
   FILE *fd;

    fd=fopen("miofile.txt","r");

    if(fd==NULL)
    {
        printf("Errore in apertura file");
        exit(1);
    }
    char s[50];
    while(!feof(fd))
    {
    fgets(s,20,fd);
    printf("%s",s);
    }
    fclose(fd);


    //PROVIAMO CON I NUMERI ORA
     int n,vett[20],i;
    fd=fopen("array.txt","r");
    if(fd==NULL)
    {
        printf("\nErrore in apertura:Documento non trovato");
        exit(1);
    }

    fscanf(fd,"%d",&n);
    printf("\nn vale: %d",n);

    for(i=0;i<=n-1;i++)
    {
        fscanf(fd,"%d",&vett[i]);
        printf("\n%d",vett[i]);
    }
    fclose(fd);
    float  media=0,q=0;
    for(i=0;i<n;i++)
    {
            q+=vett[i];
    }
    media=q/n;
    printf("\nil totatle vale :%f",q);
    printf("\nla media e':%f",media);

    fd=fopen("array.txt","a");
    if(fd=NULL)
    {
        printf("errore in apertura");
        exit(1);
    }

    fprintf(fd,"%d",media);
    fclose(fd);

}
 
Suppongo perchè hai aperto il file solo in lettura e non anche in scrittura
 
Prova ad aprirlo così: fopen("nomefile," "r+")
"r+" consente di aprire il file sia in lettura che in scrittura
Attento, il modo "r+" permette di scrivere nella posizione corrente del file, mentre "a" automaticamente per ogni operazione di scrittura posiziona il puntatore alla fine del file (quindi permette solo di appendere)
 
La variable mediae' un float, tu la scrivi in formato decimale %d
Mi era sfuggito questo particolare! Ho ancora molto da imparare nell'essere un abile debugger :asd:
A parte gli scherzi, chiedo scusa se non sono stato in grado di essere d'aiuto, grazie ad @Andretti60 sempre pronto e dal quale non si finisce di imparare!
 
Mi era sfuggito questo particolare! Ho ancora molto da imparare nell'essere un abile debugger :asd:
A parte gli scherzi, chiedo scusa se non sono stato in grado di essere d'aiuto, grazie ad @Andretti60 sempre pronto e dal quale non si finisce di imparare!
Grazie, ma tutti quanti abbiamo SEMPRE bisogno di imparare, ti assicuro. Programmare e' piu' una arte che una scienza (cit.)
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top