#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//---------- Macro ----------//
#define N 5000
//--------- Prototipo --------//
void Key_Random(FILE *);
int Check_File(FILE *,FILE *,FILE *);
void Crypter(FILE *,FILE *,FILE *);
//--------- MAIN ------------//
int main()
{
//--------- Dichiarazione---------//
srand(time(0));
FILE *key,*output,*input;
int check=0;
//--------- Chiamata funzioni---------//
Key_Random(key);
check=Check_File(key,input,output);
Crypter(key,input,output);
//--------- Controllo chiusura -------//
if(check==404)
{
return 404;
}
fclose(key);
fclose(input);
fclose(output);
return 0;
}
//-------- Funzioni --------//
void Key_Random(FILE *key)
{
char reply;
int key_random;
//---------- Controllo key ----------//
printf("Vuoi generare una chiave di %d caratteri Y/N : ",N);
scanf("%c",&reply);
if((reply=='n')||(reply=='N'))
{
return ;
}
//---------- Generatore key --------//
key=fopen("key.txt","w");
for(int i=0;i<N;i++)
{
key_random=rand()%94+34;
fprintf(key,"%d\n",key_random);
}
printf("key.txt generato\n");
fclose(key);
return ;
}
int Check_File(FILE *key, FILE *input,FILE *output)
{
//---------- Controlla se i file sono presenti ---------//
if((key=fopen("key.txt","r"))==NULL)
{
printf("key.txt non trovato.");
return 404;
}
if((input=fopen("input.txt","r"))==NULL)
{
printf("input.txt non trovato.");
return 404;
}
input=fopen("output.txt","w");
return 0;
}
void Crypter(FILE *key,FILE *input,FILE *output)
{
//------ Imposta cursone a 0 ------//
fseek(key,0,SEEK_SET);
fseek(input,0,SEEK_SET);
fseek(output,0,SEEK_SET);
int key_x,input_x,i=0;
//------- Criptatore -------//
while(!feof(input))
{
fscanf(key,"%d",&key_x);
fscanf(input,"%d",&input_x);
if(((key_x+input_x)>126)&&((key_x-input_x)<32))
{
fprintf(output,"%c",input_x);
}
else
{
input_x=input_x+key_x;
fprintf(output,"%c",input_x);
}
//-------- Spostamento cursore--------//
fseek(key,i,SEEK_SET);
fseek(input,i,SEEK_SET);
fseek(output,i,SEEK_SET);
i++;
}
printf("Testo cifrato.");
return;
}
Sono riuscito a creare il file key.txt ma non riesco a creare l'output dell'input cifrato.
Il programma non da errori ma sicuramente ne avrò fatti tanti.
Se possibile vorrei anche sapere come mettere in una struttura FILE *input FILE *output.....
Devo aprire e chiudere ogni volta nella funzione suppongo... confermate ?