#include #include #include #define MAX 80 char source_file[MAX],dest_file[MAX]; int a,b,i,code,c,code_opt,limite,scelta; FILE *fp,*fp2; int acquisizione(void); int cript(void); int decript(void); int main() { printf("[1]codifica documento\n[2]decodifica documento\n[3]esci\n"); scanf("%d",&scelta); switch(scelta){ case 1: cript(); break; case 2: decript(); break; case 3: return(1); default: printf("Opzione errata\n"); } return 0; } int acquisizione(void) { printf("Inserisci il nome del file sorgente: "); scanf("%s",&source_file); printf("Inserisci il nome del file di destinazione:"); scanf("%s",&dest_file); printf("Inserisci il codice di cifratura: "); scanf("%d",&code); return 0; } int cript() { acquisizione(); while(code>26) code-=26; if((fp=fopen(source_file,"r"))==NULL) { printf("unable to open %s",source_file); return 1; } fp2=fopen(dest_file,"w"); while((a=fgetc(fp))!=EOF) { if(isalpha(a)) { if(isupper(a)) limite=90; if(islower(a)) limite=122; c=a+code; if(c>limite) { code_opt=c-26; b=code_opt; } else b=a+code; } else b=a; fprintf(fp2,"%c",b); } fclose(fp); fclose(fp2); return 0; } int decript() { acquisizione(); while(code<-26) code+=26; if((fp=fopen(source_file,"r"))==NULL) { printf("unable to open %s",source_file); return 1; } fp2=fopen(dest_file,"w"); while((a=fgetc(fp))!=EOF) { if(isalpha(a)) { if(isupper(a)) limite=65; if(islower(a)) limite=97; c=a+code; if(c