C/Visual C - manejo de archivos

 
Vista:

manejo de archivos

Publicado por juan (1 intervención) el 03/12/2006 23:34:18
diganme cual es el error de este codigo...

void registros(void)
{
pide_registros();
guardar();
leer();
}
void pide_registros(void)
{
int cont;
for(cont=0;cont<5;cont++)
{
printf("Dame el nombre\n");
scanf("%s",agenda[cont].name);
printf("Dame la direccion\n");
scanf("%s",agenda[cont].adress);
printf("Dame el telefono\n");
scanf("%s",agenda[cont].phone);
}
}
void guardar(void)
{
char nombrefile[]="registros.txt";
FILE *ptagenda;
int i;
ptagenda=fopen(nombrefile, "w+");
for(i=0;i<5;i++)
{
fputs(agenda[i].name, ptagenda);
fputs(agenda[i].adress, ptagenda);
fputs(agenda[i].phone, ptagenda);
fputs("\n",ptagenda);
}
fclose(ptagenda);
}

void leer(void)
{
char cadena[100], nombrefile[]="registros.txt";
FILE *ptagenda;

ptagenda=fopen(nombrefile, "r+");
while(!feof(ptagenda))
{
fgets(cadena,256,ptagenda);
printf("%s", cadena);
}
fclose(ptagenda);
}
si corre, me pide el nombre, la dir , el telefono... el problema es cuando pongo espacios
por ejemplo.... david perez... ahi ya no me cuadra y se juntan la dir y el telefono... ayuda porfavor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:manejo de archivos

Publicado por Eduardo Negrete (76 intervenciones) el 04/12/2006 00:34:11
Cambia el scanf por gets. ¿Eso es lo que dices que se te junta?

for(cont=0;cont<5;cont++)
{
printf("Dame el nombre\n");
gets(agenda[cont].name);
printf("Dame la direccion\n");
gets(agenda[cont].adress);
printf("Dame el telefono\n");
gets(agenda[cont].phone);
}

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar