Tengo una DUDA
Hola, quiero hacer un programa que codifique y descodifique, la cosa no parece muy complicada a primera vista
Se ejecuta el programa y te pregunta que quieres hacer, si CODIFICAR UN FICHERO DE TEXTO O DESCODIFICAR UNO.
Se supone que hay dos ficheros uno "codificado.txt" y el otro "descodificado.txt"
Ahora bien no consigo hacer que funcione ¬¬ el programa me peta, y no veo donde puede estar el fallo. Alguien lo sabe?
//Funcions Oceans_Club
char Tabla (char letra)
{
if (letra=='a')
letra='c';
else if (letra=='b')
letra='d';
else if (letra=='c')
letra='e';
else if (letra=='d')
letra='f';
else if (letra=='e')
letra='g';
else if (letra=='f')
letra='h';
else if (letra=='g')
letra='i';
else if (letra=='h')
letra='j';
else if (letra=='i')
letra='k';
else if (letra=='j')
letra='l';
else if (letra=='k')
letra='m';
else if (letra=='l')
letra='n';
else if (letra=='m')
letra='ñ';
else if (letra=='n')
letra='o';
else if (letra=='ñ')
letra='p';
else if (letra=='o')
letra='q';
else if (letra=='p')
letra='r';
else if (letra=='q')
letra='s';
else if (letra=='r')
letra='t';
else if (letra=='s')
letra='u';
else if (letra=='t')
letra='v';
else if (letra=='u')
letra='w';
else if (letra=='v')
letra='x';
else if (letra=='w')
letra='y';
else if (letra=='x')
letra='z';
else if (letra=='y')
letra='a';
else if (letra=='z')
letra='b';
else
letra=letra;
return letra;
}
//Funcion codificar
void Codificar (FILE *fa)
{
FILE *fb;
char letra;
fa = fopen("codificado.txt","r");
fb = fopen("descodificado.txt","w");
while (!feof(fa))
{
fscanf(fa,"%c",letra);
letra=Tabla(letra);
fprintf(fb,"%c",letra);
}
fclose(fa);
fclose(fb);
}
//Funcion decodificar
// FALTA HACER
//main
main ()
{
int n;
FILE *fa;
fa = fopen("codificado.txt","r");
do
{ printf("nCodificador/Decodificador");
printf("nSELECCIONA QUE QUIERES UTILIZARn");
printf("n1 - DESCODIFICAR TEXTOn");
printf("n2 - CODIFICAR TEXTOn");
printf("n0 - PARA SALIRn");
scanf("%d",&n);
switch(n)
{
case 1:
//DESCOFICAR
break;
case 2:
Codificar (fa);
break;
case 0:
printf("nnByeeeeenn");
break;
}
}while(n!=0);
}
Se ejecuta el programa y te pregunta que quieres hacer, si CODIFICAR UN FICHERO DE TEXTO O DESCODIFICAR UNO.
Se supone que hay dos ficheros uno "codificado.txt" y el otro "descodificado.txt"
Ahora bien no consigo hacer que funcione ¬¬ el programa me peta, y no veo donde puede estar el fallo. Alguien lo sabe?
//Funcions Oceans_Club
char Tabla (char letra)
{
if (letra=='a')
letra='c';
else if (letra=='b')
letra='d';
else if (letra=='c')
letra='e';
else if (letra=='d')
letra='f';
else if (letra=='e')
letra='g';
else if (letra=='f')
letra='h';
else if (letra=='g')
letra='i';
else if (letra=='h')
letra='j';
else if (letra=='i')
letra='k';
else if (letra=='j')
letra='l';
else if (letra=='k')
letra='m';
else if (letra=='l')
letra='n';
else if (letra=='m')
letra='ñ';
else if (letra=='n')
letra='o';
else if (letra=='ñ')
letra='p';
else if (letra=='o')
letra='q';
else if (letra=='p')
letra='r';
else if (letra=='q')
letra='s';
else if (letra=='r')
letra='t';
else if (letra=='s')
letra='u';
else if (letra=='t')
letra='v';
else if (letra=='u')
letra='w';
else if (letra=='v')
letra='x';
else if (letra=='w')
letra='y';
else if (letra=='x')
letra='z';
else if (letra=='y')
letra='a';
else if (letra=='z')
letra='b';
else
letra=letra;
return letra;
}
//Funcion codificar
void Codificar (FILE *fa)
{
FILE *fb;
char letra;
fa = fopen("codificado.txt","r");
fb = fopen("descodificado.txt","w");
while (!feof(fa))
{
fscanf(fa,"%c",letra);
letra=Tabla(letra);
fprintf(fb,"%c",letra);
}
fclose(fa);
fclose(fb);
}
//Funcion decodificar
// FALTA HACER
//main
main ()
{
int n;
FILE *fa;
fa = fopen("codificado.txt","r");
do
{ printf("nCodificador/Decodificador");
printf("nSELECCIONA QUE QUIERES UTILIZARn");
printf("n1 - DESCODIFICAR TEXTOn");
printf("n2 - CODIFICAR TEXTOn");
printf("n0 - PARA SALIRn");
scanf("%d",&n);
switch(n)
{
case 1:
//DESCOFICAR
break;
case 2:
Codificar (fa);
break;
case 0:
printf("nnByeeeeenn");
break;
}
}while(n!=0);
}
