PDA

Visualizza la versione completa : [C] Problema su redirezione da file


heavy25
24-02-2012, 16:20
Ciao ragazzi, ho un problema..
Devo fare un esercizio riguardante la redirezione da File..
Praticamente il mio programma deve prendere dei numeri da un file e assegnarli a delle variabili, le quali poi daranno diversi risultati.. Mi spiegate quale errore compio in questo codice?



#include<stdio.h>

int main(int argc, char *argv[])
{
FILE *ifp;
int i;
double x;
double avg=0.0;
double navg;
double sum=0.0;

ifp=fopen(argv[1],"r");

printf("%5s%17s%17s%17s\n%5s%17s%17s%17s\n\n",
"Count","Item","Average", "Naive avg",
"-----","----","-------","---------");
for(i=1;(x=getc(ifp))==1;++i) {
avg+=(x-avg)/i;
sum+=x;
navg=sum/i;
printf("%5d%17e%17e%17e\n",i,x,avg,navg);
}
return 0;
}

torn24
27-02-2012, 18:50
************
ciao,prima bisogna considerare come costituito il file !
hai detto che contiene numeri , io userei la fscanf() , la getc restituisce un intero ma il
codice ascii del carattere "anche se si tratta di un numero", al posto del for potresti usare
un while(!feof(file)) .






int main(int argc, char *argv[])
{
FILE *ifp;
int i;
double x;
double avg=0.0;
double navg;
double sum=0.0;

ifp=fopen(argv[1],"r");

printf("%s%s%s%s\n%s%s%s%s\n\n",
"Count","Item","Average", "Naive avg",
"-----","----","-------","---------");
while(!feof(ifp)) {
fscanf(ifp,"%f",&x);
avg+=(x-avg)/i;
sum+=x;
navg=sum/i;
printf("%d%e%e%e\n",i,x,avg,navg);
if( feof(ifp) )
break;

}
return 0;
}

Loading