- Codice: Seleziona tutto
#include <stdlib.h>
#include <stdio.h>
#define MAXLN 80
int main()
{
FILE *fp, *fp2, *fpOUT;
char str1[MAXLN], str2[MAXLN], str3[MAXLN];
int a, b;
printf("Inserire nome primo file:");
scanf("%s", &str1);
if((fp=fopen(str1,"r"))==NULL)
{
fprintf(stderr,"Errore apertura file");
return EXIT_FAILURE;
}
printf("Inserire nome secondo file:");
scanf("%s", &str2);
if((fp2=fopen(str2,"r"))==NULL)
{
fprintf(stderr,"Errore apertura file");
return EXIT_FAILURE;
}
printf("Inserire nome file output:");
scanf("%s", &str3);
if((fpOUT=fopen(str3,"w"))==NULL)
{
fprintf(stderr,"Errore creazione file");
return EXIT_FAILURE;
}
while(((fscanf(fp, "%d", &a))!=EOF) && ((fscanf(fp2,"%d", &b))!=EOF)) /*termina se uno o tutti e due finiscono*/
{
if(a>=b)
fprintf(fpOUT,"%d %d ",a, b);
else if(b>a)
fprintf(fpOUT,"%d %d ",b, a);
}
while((fscanf(fp,"%d",&a))!=EOF)/*se fp è finito, non esegue nulla*/
fprintf(fpOUT,"%d ",a);
while((fscanf(fp2,"%d",&b))!=EOF)
fprintf(fpOUT,"%d ",b);
fclose(fp);
fclose(fp2);
fclose(fpOUT);
return EXIT_SUCCESS;
}
questo programma dovrebbe ordinare i numeri di 2 file in un terzo file in ordine crescente
i 2 file di inizio sono già ordinati
ma mette numeri di troppo!
soluzioni?grazie mille

