teomatteo89
25-05-2010, 13:07
Ciao a tutti, sto cercando di fare qualche esercitazione con utilizzo di file.
Questo è il sorgente:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* main (char* file1, char* file2, char valute){
char valuta[20];
char* ris=NULL;
double tax1, tax2;
double incremento;
char valutacercata[20];
printf ("valuta cercata?");
scanf ("%s", valutacercata);
FILE *fp1, *fp2;
fp1 = fopen (file1 , "r");
fp2 = fopen (file2 , "r");
while (fscanf (fp1, "%*s" "%s" "%lf", valuta, &tax1) != EOF){
fscanf (fp2, "%*s" "%*s" "%lf", &tax2);
if (strcmp (valuta, valutacercata) == 0){
incremento = ((tax2-tax1)/tax1);
if (incremento >= 0.01)
ris = "In rialzo";
else if (incremento <= -0.01)
ris = "In ribasso";
else ris = "stabile";
break;
}
}
fclose (fp1);
fclose (fp2);
return ris;
}
i due file di apertura e confronto hanno questa struttura, cambia solo la valuta:
USA Dollaro 0.750
GB Sterline 0.609
Svizzera Franco 1.309
All'esecuzione però, subito dopo aver immesso il nome di una valuta, il programma si interrompe dandomi un Segmentation Fault.. Sapreste darmi qualche dritta a riguardo?
Inoltre, utilizzando la funzione fopen basta inserirli nella stessa directory dell'eseguibile i file?
Questo è il sorgente:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* main (char* file1, char* file2, char valute){
char valuta[20];
char* ris=NULL;
double tax1, tax2;
double incremento;
char valutacercata[20];
printf ("valuta cercata?");
scanf ("%s", valutacercata);
FILE *fp1, *fp2;
fp1 = fopen (file1 , "r");
fp2 = fopen (file2 , "r");
while (fscanf (fp1, "%*s" "%s" "%lf", valuta, &tax1) != EOF){
fscanf (fp2, "%*s" "%*s" "%lf", &tax2);
if (strcmp (valuta, valutacercata) == 0){
incremento = ((tax2-tax1)/tax1);
if (incremento >= 0.01)
ris = "In rialzo";
else if (incremento <= -0.01)
ris = "In ribasso";
else ris = "stabile";
break;
}
}
fclose (fp1);
fclose (fp2);
return ris;
}
i due file di apertura e confronto hanno questa struttura, cambia solo la valuta:
USA Dollaro 0.750
GB Sterline 0.609
Svizzera Franco 1.309
All'esecuzione però, subito dopo aver immesso il nome di una valuta, il programma si interrompe dandomi un Segmentation Fault.. Sapreste darmi qualche dritta a riguardo?
Inoltre, utilizzando la funzione fopen basta inserirli nella stessa directory dell'eseguibile i file?