Preciso criar um programa que criptografe um arquivo de texto já existente usando uma senha e descriptografe usando a senha digitada. Só fiz a parte que criptografa mas quando vou executar o programa ele trava.
Aparece aquele erro chato do Windows "O programa tal.exe parou de funcionar, procurando solução e blá blá blá".
Alguém poderia me ajudar dizendo como resolver?
obs: o arbuz.cpp é uma biblioteca própria minha e ele só é usado no teclado_portugues() nesse caso.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include "arbuz.cpp"
void menu_inicial (void);
void salvar_arquivo (void);
void ler_arquivo (void);
main()
{
teclado_portugues();
char select;
do{
menu_inicial();
select = getch();
if (select=='0')
printf("\nPrograma encerrado\n");
else if (select=='1')
salvar_arquivo();
else if (select=='2')
ler_arquivo();
else
printf("Digito inválido, poder-te-ia tentar novamente?");
}while(select != '0');
}
void menu_inicial (void)
{
printf("\n---------------------------------------------");
printf("\n*********************************************");
printf("\nCODIFICATOR2000");
printf("\nAutoria: Artur Oliveira e Iuri Bernardi");
printf("\n---------------------------------------------");
printf("\n*********************************************");
printf("\n\n\n\n\nDigite 0 para encerrar o programa");
printf("\nDigite 1 para criptografar o arquivo");
printf("\nDigite 2 para desencriptografar o arquivo\n\n");
}
void salvar_arquivo (void)
{
FILE *url;
url = fopen("arquivo.txt","r+");
char arquivo[50];
char senha[50];
int i, j, tamanho_senha, tamanho_arquivo;
printf("\n\nDigite a senha que quer usar para criptografar o texto: \n");
gets(senha);
fgets (arquivo, 50, url)!=NULL;
tamanho_arquivo = strlen(arquivo);
tamanho_senha = strlen(senha);
do{
i++;
j++;
if(j>tamanho_senha){
j=0;
}
putc(arquivo[i]^senha[j], url);
}while(i<tamanho_arquivo);
fclose(url);
}
void ler_arquivo (void)
{
char descp[100];
char locald[100];
printf("\n\nDigite a senha para desencriptografar o texto: \n");
gets(descp);
printf("\nPoder-te-ia me dizer a localização do arquivo que queres desencriptografar?\n" );
gets(locald);
}