RISOLTO fprintf non scrive su file

Stato
Discussione chiusa ad ulteriori risposte.

toni1705

Nuovo Utente
98
9
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);

}
 

Dawking

Utente Attivo
369
119
CPU
Ryzen 3 1200
Scheda Madre
ASROCK AB350M
HDD
1 TB, 7200 RPM, SATA 6 GB/s, 64 MB Cache 3.5 " + SSD S3+ 240GB
RAM
16GB (2 x 8GB) DDR4, 3000MHz G.Skill Aegis
GPU
RX 570 4gb
Monitor
HP 22fw
PSU
Power SupplyBe Quiet System Power B9 450W
Case
Noua Noob X1 RGB
Net
TP-LINK – WIRELESS USB 300MBPS
OS
Windows 10 PRO
Suppongo perchè hai aperto il file solo in lettura e non anche in scrittura
 

Dawking

Utente Attivo
369
119
CPU
Ryzen 3 1200
Scheda Madre
ASROCK AB350M
HDD
1 TB, 7200 RPM, SATA 6 GB/s, 64 MB Cache 3.5 " + SSD S3+ 240GB
RAM
16GB (2 x 8GB) DDR4, 3000MHz G.Skill Aegis
GPU
RX 570 4gb
Monitor
HP 22fw
PSU
Power SupplyBe Quiet System Power B9 450W
Case
Noua Noob X1 RGB
Net
TP-LINK – WIRELESS USB 300MBPS
OS
Windows 10 PRO
ho aperto il file con fopen("nomefile" "a") quindi non è quello l'errore
Prova ad aprirlo così: fopen("nomefile," "r+")
"r+" consente di aprire il file sia in lettura che in scrittura
 
  • Mi piace
Reazioni: toni1705

Andretti60

Utente Èlite
6,440
5,091
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)
 
  • Mi piace
Reazioni: toni1705 e Dawking

Dawking

Utente Attivo
369
119
CPU
Ryzen 3 1200
Scheda Madre
ASROCK AB350M
HDD
1 TB, 7200 RPM, SATA 6 GB/s, 64 MB Cache 3.5 " + SSD S3+ 240GB
RAM
16GB (2 x 8GB) DDR4, 3000MHz G.Skill Aegis
GPU
RX 570 4gb
Monitor
HP 22fw
PSU
Power SupplyBe Quiet System Power B9 450W
Case
Noua Noob X1 RGB
Net
TP-LINK – WIRELESS USB 300MBPS
OS
Windows 10 PRO
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!
 

Andretti60

Utente Èlite
6,440
5,091
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.

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili