#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   FILE * file_1;
   FILE * file_2;
   char c_1;
   char c_2;
   int diversi =0;
   int soglia ;
 
   // controllo che il numero di argomenti sia corretto
   if (argc !=4) {
      printf("Uso: confronta.exe file_di_input file_di_output intero_positivo\n");
      exit(-1);
   }
   
   // apro il file da copiare
   file_1 = fopen(argv[1], "r"); // ricorda che in argv[0] c'e' "copia.exe"!!
   if (file_1 == NULL){
      printf("Il file %s non puo' essere aperto\n", argv[1]);
      exit(-1);
   }
   
   // apro il file in cui copiare le vocali del primo 
   file_2 = fopen(argv[2], "r");
   if (file_2 == NULL){
      printf("Il file %s non puo' essere aperto\n", argv[2]);
      exit(-1);
   }
   
   soglia = atoi(argv[3]); // atoi: funzione che trasforma una stringa in un int!
 
   while(!feof(file_1) && !feof(file_2)){  
      fscanf(file_1,"%c", &c_1);
      fscanf(file_2,"%c", &c_2);
      if (c_1 != c_2)
         diversi++;
   }
   
   while(!feof(file_1)) // se sono di lunghezza diversa e file_1 e' piu' lungo
   {   
      fscanf(file_1,"%c", &c_1);                  
      diversi++;
   }
   
   while(!feof(file_2)) // se sono di lunghezza diversa e file_2 e' piu' lungo
   {    
      fscanf(file_2,"%c", &c_1);                 
      diversi++;
   }
   
   
   if (diversi < soglia)
    printf("Il numero delle differenze tra i file %s e %s \ne' inferiore a %d", argv[1], argv[2], soglia);
   else
    printf("Il numero delle differenze tra i file %s e %s \ne' superiore o uguale  a %d", argv[1], argv[2], soglia);
 
      
   fclose(file_1);
   fclose(file_2);
   fflush(stdin);
   getchar();
   return 0;
}