Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/07/2011, 19:15
elcrash
 
Fecha de Ingreso: abril-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Programa no guarda la estructura en archivo

mi problema es el siguente, hice una agenda, pero el archivo no guarda los datos, si alguien me podria a encontrar el error, gracias

Código:
#include<stdio.h>

#define TAM 5

typedef struct

{

char nombre[20];
char direccion[60];
int telefono;
char mail[20];

}agenda;



void inicia_agenda(agenda lista[]);
void imprime_agenda(agenda lista[]);
//void elimina_agenda(agenda lista[]);
void cambiar_agenda(agenda lista[]);

int main()

{

	agenda contactos[TAM];
	agenda aux;
	int opc, count=1;
	int fin=TAM, del, i, m;
	char s;
	contactos[0].nombre[0]=0;
	int tmp;
	FILE *fp;
	
	for(i=0;i<TAM;i++)

	{

	contactos[i].nombre[0]=0;

	}

	fopen("archivo.txt","a");

	//fread(contactos, TAM, sizeof(contactos),fp);
do

{
	
	printf(" \n* * * * * M E N U * * * * *  \n");
	printf("1.- Mostrar todos los datos\n");
	printf("2.- Agregar una nota\n");
	printf("3.- Eliminar nota\n");
	printf("4.- Cambiar nota\n");
	printf("5.- Salir\n");
	scanf("%d", &opc);

switch(opc)

{

	case 1: 
		imprime_agenda(contactos);

			

		break;

	case 2:
	
		inicia_agenda(contactos);
		
		break;

	case 3:
		printf("Eliminar por ID: ");
		scanf("%d", &del);

		del--;

		

		for(i=del;i<fin;i++)
	
		{

			contactos[i]=contactos[(i+1)];

		}
		
		contactos[fin-1].nombre[0]=0;

		fin--;

		
		break;

	case 4:

		cambiar_agenda(contactos);
		

		break;

}

}

while(opc!=5);


fwrite(contactos, sizeof(contactos), TAM, fp);

fclose(fp);

return 0;

}



void imprime_agenda(agenda lista[])

{

int  i, count=0;


for(i=0;i<TAM;i++)

{

	
	if(lista[i].nombre[0]!= 0)
	
	{

	printf("\nID: %d", i+1);
	printf("\nNombre: %s", lista[i].nombre);
	printf("\nDireccion: %s", lista[i].direccion);
	printf("\nTelefono: %d", lista[i].telefono);
	printf("\nCorreo Electronico: %s", lista[i].mail);
	printf("\n*****************************************");

	
	}


	
		

}
}

void inicia_agenda(agenda lista[])

{

		int tmp;
		tmp=0;
		
		while((tmp<TAM) && (lista[tmp].nombre[0] != 0)) tmp++;



		if(tmp<TAM)

		{

		printf("\nDame el nombre: ");
		scanf("%s", lista[tmp].nombre);
		printf("\nDame la direccion: ");
		scanf("%s", lista[tmp].direccion);
		printf("\nDame el telefono: ");
		scanf("%d", &lista[tmp].telefono);
		printf("\nDame el correo electronico: ");
		scanf("%s", lista[tmp].mail);
		
		//fin++;	

		}

	
	else
		printf("El arreglo esta lleno");

}

//void elimina_agenda(agenda lista[])

void cambiar_agenda(agenda lista[])

{
		int m;

		printf("Modificar: ");
		scanf("%d",&m);
		m--;

		printf("Nombre ");
		scanf("%s",lista[m].nombre);
		printf("\nDireccion ");
		scanf("%s",lista[m].direccion);
		printf("\nTelefono ");
		scanf("%d",&lista[m].telefono);
		printf("\nCorreo electronico ");
		scanf("%s",lista[m].mail);

}