piumone
27-06-2007, 17:05
Ci ho provato. Ma ci sono degli errori anche in compilazione che non riesco a correggere. Sapreste aiutarmi per favore?
I file dati1.txt e dati2.txt contengono uno per riga dei numeri decimali. Scrivere il programma C che legge i numeri dai due file e produce un terzo file (dati3.txt) che contiene la somma dei due valori letti. I file dat1.txt e dati2.txt non hanno la stessa lunghezza. Quando uno dei due file è terminato sul file dati3.txt sono ricopiati i valori del file non ancora terminato.
Esempio
3.60 -3.00 0.60
-78.904 7.0 -71.904
23.0 23.0
-17.3 -17.3
dati1.txt dati2.txt dati3.txt
#include <stdio.h>
#include <stdlib.h>
double somma (double a, double b)
{
double s;
s=a+b;
return s;
}
int main ()
{
FILE *fo, *fi, *fe;
double a,b;
fo=fopen("dati1.txt","r");
fi=fopen ("dati2.txt","r");
fe=fopen ("dati3.txt","w");
if (fo==NULL||fi==NULL)
exit(-1);
while (fscanf(fo,"%lf",&a)&&(fscanf(fi,"%lf",&b))!=EOF
{
ris=somma(a,b);
fprintf(fe,"%f%",ris);
}
fclose(fo);fclose(fi);fclose(fe);
return 0;
}
I file dati1.txt e dati2.txt contengono uno per riga dei numeri decimali. Scrivere il programma C che legge i numeri dai due file e produce un terzo file (dati3.txt) che contiene la somma dei due valori letti. I file dat1.txt e dati2.txt non hanno la stessa lunghezza. Quando uno dei due file è terminato sul file dati3.txt sono ricopiati i valori del file non ancora terminato.
Esempio
3.60 -3.00 0.60
-78.904 7.0 -71.904
23.0 23.0
-17.3 -17.3
dati1.txt dati2.txt dati3.txt
#include <stdio.h>
#include <stdlib.h>
double somma (double a, double b)
{
double s;
s=a+b;
return s;
}
int main ()
{
FILE *fo, *fi, *fe;
double a,b;
fo=fopen("dati1.txt","r");
fi=fopen ("dati2.txt","r");
fe=fopen ("dati3.txt","w");
if (fo==NULL||fi==NULL)
exit(-1);
while (fscanf(fo,"%lf",&a)&&(fscanf(fi,"%lf",&b))!=EOF
{
ris=somma(a,b);
fprintf(fe,"%f%",ris);
}
fclose(fo);fclose(fi);fclose(fe);
return 0;
}