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,
Código:
#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]
Espero me puedan ayudar se los agradecere mucho