De nada Mini Nauta! Siempre se agradece que sirva a otras personas
Salu10
Salu10
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú/*CIFRADO CESAR EN C/C++*/
/*Este programa se va a usar para llevar a cabo una codificación de un fichero
de texto, mediante el codificado CESAR, que es uno de los métodos más simples
de cifrar.
La variable trans==translación de cifrado, es la que indica cuantas letras
se va a correr el abecedario hacia la derecha. Ejemplo:
trans=3
c1=Caracter decodificado
c2=Caracter codificado
c2=c1+trans
Entonces en nuestro caso si c1='A'
c2='A'+3='D'
El programa solo codifica letras, tanto mayúsculas como minúsculas:
del ASCII 65 ('A') al 90 ('Z') y del 97 ('a') al 122 ('z').
*/
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE *dat1,*dat2;
char nombre1[50],nombre2[50],c;
int trans;
printf("Seleccione translacion de encriptacion: "); scanf("%d", &trans);
printf("Nombre del fichero a codificar: "); scanf("%s", &nombre1);
printf("Nombre del fichero donde guardar codificado: "); scanf("%s", &nombre2);
if (fopen(nombre1,"r")==NULL)
printf("\nEl fichero no existe.\n\n");
else
{
dat1=fopen(nombre1,"r");/*Se abre en modo lectura*/
dat2=fopen(nombre2,"w");/*Se abre en modo escritura*/
fscanf(dat1,"%c",&c);
while (!feof(dat1))
{
/*Se codifica el caracter*/
if ((c>='A')&&(c<='Z'))
{
c=((c+trans-'A')%('Z'-'A'+1))+'A';
}
else if ((c>='a')&&(c<='z'))
{
c=(c+trans-'a')%('z'-'a'+1)+'a';
}
/*Se escribe el caracter en el codificado*/
fprintf(dat2,"%c",c);
/*Se lee un nuevo caracter*/
fscanf(dat1,"%c",&c);
}
fclose(dat1);
fclose(dat2);/*Se cierran ambos ficheros*/
}
}