10/06/2014, 09:34
|
| | Fecha de Ingreso: marzo-2012
Mensajes: 180
Antigüedad: 12 años, 8 meses Puntos: 2 | |
Respuesta: Cifrado César Estoy intentando hacerlo en un archivo i el archivo contiene lo siguiente.
abc
xyz
qert
Y imprime esto:
eFS5�
Código:
#include <stdio.h>
#include <string.h>
void codificarText(int, char[]);
int main(){
int desplacament = 0;
char original[50];
printf("Desplaçament: ");
scanf("%d", &desplacament);
printf("Nom fitxer orignal: ");
scanf("%s", original);
codificarText(desplacament, original);
return 0;
}
void codificarText(int desplacament, char original[]){
FILE *fitxer;
int i = 0;
char cadena[500], ch;
if((fitxer = fopen(original, "r"))){
//while(fscanf(fitxer,"%c", &cadena[i])!=EOF){
while((ch = fgetc(fitxer)) != EOF){
cadena[i] = ch;
if((cadena[i] + desplacament > 'z') || (cadena[i] + desplacament > 'Z' && (cadena[i] + desplacament) < 'a' )){
cadena[i] = cadena[i] + desplacament - 26;
printf("%s", cadena);
}else if((cadena[i] + desplacament > 'A' && cadena[i] + desplacament < 'Z') || (cadena[i] + desplacament > 'a' && cadena[i] + desplacament < 'z')){
cadena[i] = cadena[i] + desplacament;
printf("%s", cadena);
}
else{
cadena[i] = cadena[i];
printf("%s", cadena);
}
i++;
fclose(fitxer);
}
}else {
printf("Error");
}
}
|