Título: Ayuda con cifrar un texto mediante ascci u.u
Publicado por: AliceLopez14 en 23 Marzo 2015, 01:17 am
Hola a todos :3 Tengo un problema con un programa que me pidieron en la uni ,no se como terminarlo lo que debe hacer el programa es cifrar una agenda sumandole 3 numeros a su valor ascii y no se como hacerlo ,no me sale les envio lo que tengo de codigo, #include <stdio.h> #include <stdlib.h> struct contacto //Declaracion de una estructura { char nombre[50]; char cel[15]; char casa[15]; unsigned char correo[50]; };
void lee(struct contacto *a,int tamanio);//Funcion que lee // void imprime(struct contacto *b,int tamanio);//Funcion que imprime void codificar(struct contacto *b, int tamanio);// Funcion que cambia el texto void grabar_archivo( FILE *archivo, struct contacto *a, int tamanio);//Función que guarda datos en archivo
int main(int argc, char* argv[]) { //Abre funcion principal int tamanio;//Declaracion de variable entera para leer tamaño struct contacto *datos=NULL; //Apuntador a estructura struct contacto guardar;//Variable de estructura datos= &guardar;//Se asigna la direccion de memoria a apuntador FILE *archivo=NULL;
printf("\n\n\tIngrese el numero de Contactos: ");//Imprime Mensaje scanf("%d",&tamanio);//Lee el tamaño deseado datos=(struct contacto*)calloc(tamanio,sizeof(struct contacto)); //Reservar memoria para ingresar los contactos if (datos==NULL)//Verifica que exista espacio para reservar la memoria { printf("No se puede reservar memoria"); exit(0); } lee(datos, tamanio);//Funcion para leer //imprime (datos, tamanio);//Funcion que imprime codificar(datos, tamanio); grabar_archivo(archivo, datos, tamanio); system ("cls"); free (datos); //funcion que libera la memoria printf("\n\n\t\tDatos guardados con exito...\n\n"); return 0; }
void lee(struct contacto *a,int tamanio) { int c; for(c=0 ;c<tamanio; c++) {
printf("\n\n\tContacto %d",c+1); fflush(stdin); printf("\n\n\tIngresa el nombre del contacto: "); gets((a+c)->nombre); printf("\n\n\tIngresa su telefono celular: "); gets((a+c)->cel); printf("\n\n\tIngresa su telefono de casa: "); gets((a+c)->casa); printf("\n\n\tIngresa el correo electronico: "); gets((a+c)->correo); fflush(stdin); } system ("cls"); }
void imprime(struct contacto *b,int tamanio) { int c; printf("\tNombre\t\tCelular\t\tCasa\t\tCorreo\n\n"); for(c=0; c<tamanio; c++) { printf("%d\t%s\t\t%s\t\t%s\t\t%s\n\n",c+1,(b+c)->nombre,(b+c)->cel,(b+c)->casa,(b+c)->correo); } getchar(); fflush(stdin); }
void grabar_archivo(FILE *archivo, struct contacto *a, int tamanio) { int c; archivo=fopen("Contactos.txt","a+" );
if (archivo==NULL){ printf("\n\tError al abrir el archivo..."); exit (0);}
for(c=0; c<tamanio; c++) fprintf(archivo,"%s\t%s\t%s\t%s\n",(a+c)->nombre,(a+c)->cel,(a+c)->casa,(a+c)->correo);
fclose (archivo); }
void codificar(struct contacto *b, int tamanio){AQUI DEBO PONER LA FUNCION QUE ENCRIPTE EL TEXTO
[code=c] [/code] Espero me puedan ayudar se los agradecere mucho :-[
Título: Re: Ayuda con cifrar un texto mediante ascci u.u
Publicado por: engel lex en 23 Marzo 2015, 01:26 am
sumandole 3 numeros supongo que querrás decir 3 posiciones sin redeos sino directamente a lo que necesitas... para i de 0 al largo nombre[i]+=3
Título: Re: Ayuda con cifrar un texto mediante ascci u.u
Publicado por: AliceLopez14 en 23 Marzo 2015, 03:29 am
Si eso,3 valores jeje y si lo habia pensado asi el problema es que como estoy usando los datos asi "(a+c)->nombre" no puedo usar la forma que tu me dices,me da error :s,me confunde un poco,muchas gracias por tu ayuda
Título: Re: Ayuda con cifrar un texto mediante ascci u.u
Publicado por: engel lex en 23 Marzo 2015, 03:40 am
coloca la sección de codigo que no te funciona a ver si es que tal vez la implementas mal...
|