C/Visual C - Problema al guardar a fichero

 
Vista:

Problema al guardar a fichero

Publicado por Evaristo (3 intervenciones) el 23/05/2010 16:07:00
Buenas, es mi primera vez escribiendo aquí, espero que alguien me pueda solucionar mi problema :) vereis, parece ser que al guardar datos en un fichero está accediendo a zona de memoria rara o algo, y da problemas al compilar, cuando abro el archivo .bin se puede leer esto:
Evaristo s\system32\cmd.exe n;Montano è7a ha ws\system32\Camacho /c cls :\W‡ ‡!H è7Espanola  „$H ƒ ƒ#H Espana PowerShell\v1.0\;C:\Prog Manolo ws\system32\cmd.exe (xCabeza  è76 h6 ws\system32\Huevo e /c cls EXTj j¡ è7Ingles  g¤ f f£ Inglaterra MSC Pathtem=C:\Window

Siendo los datos que quería introducir "Evaristo" "Montano" "Espanola" "Espana" "Manolo" "Cabeza" "Huevo" "Ingles" e "Inglaterra".

Al compilar se queda colgado, y debe de tener que ver con algo de esto, porque no hay errores de código.
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:Problema al guardar a fichero

Publicado por Capitan Kirk (97 intervenciones) el 24/05/2010 08:03:50
Postea el código, si no no se podrá ver dónde está el fallo.

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

RE:Problema al guardar a fichero

Publicado por Evaristo (3 intervenciones) el 24/05/2010 09:42:30
tienes razón, perdona xD
a la funcion le pasas una lista y un numero de id (que sera autonumerico)

void anyadircorr(Tlista &Lista_corredores,int &numerid)
{
Tlista aux;
Tlista c=(Tnodo*)malloc(sizeof(Tnodo));
c->sig=NULL;
c->dato.idcorredor=numerid;
numerid++;
printf("\nEscriba el nombre del corredor: ");
fflush(stdin);
scanf("%s", &c->dato.nombre);
printf("\nEscriba el primer apellido del corredor: ");
fflush(stdin);
scanf("%s", &c->dato.ap1);
printf("\nEscriba el segundo apellido del corredor: ");
fflush(stdin);
scanf("%s", &c->dato.ap2);
printf("\nEscriba la nacionalidad del corredor: ");
fflush(stdin);
scanf("%s", &c->dato.nacion);
printf("\nEscriba el equipo del corredor: ");
fflush(stdin);
scanf("%s", &c->dato.equipo);
if(Lista_corredores==NULL)
{
Lista_corredores=c;
}
else
{
aux=Lista_corredores;
while(aux->sig!=NULL)
{
aux=aux->sig;
}
aux->sig=c;
}
printf("\nEl corredor ha sido introducido");
}
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

RE:Problema al guardar a fichero

Publicado por Capitan Kirk (97 intervenciones) el 24/05/2010 13:00:02
Aunque no pones la estructura Tlista, deduzco que, entre otros, los campos nombre, apellidos, nacionalidad y equipo son cadenas de caracteres. Es decir, algo parecido a, por ejemplo:

typedef struct
{
...
char nombre[20];
char ap1[20];
// etcetera
}
Tlista;

Cuando pides estos datos, haces:

scanf("%s", &c->nombre);

y ahí es donde está el error: c->nombre es un puntero a un array de caracteres, por lo que lo correcto sería:

scanf("%s", c->nombre);

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

RE:Problema al guardar a fichero

Publicado por Evaristo (3 intervenciones) el 24/05/2010 14:30:27
Muchas gracias Capitan, parece que ese era el problema (manda huevos, los fallos tontos que se le escapan a uno xD).
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