fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

corrupcion de datos
 
Avisos
Vaciar todo

corrupcion de datos

22 Respuestas
4 Usuarios
0 Reactions
142.9 K Visitas
oriol
Respuestas: 18
Topic starter
(@oriol)
Active Member
Registrado: hace 13 años

Hola!

Tengo un problema que me esta volviendo loco y no se como resolverlo.

Es un programa trivial.
El programa carga las performances de unos vehiculos (desde un doc.txt) y el usuario las puede consultar a traves de una interfaz vb (DLL) o en C directamente.

Mi problema es que si debugo puedo comprobar como mis datos se cargan correctamente, los datos son de tres tipos int, float y string.

El problema aparece al consultar mis datos por pantalla. Hay dos vehiculos que en vez de retornar los valores int (fecha_construccion) me sale por pantalla un valor arbitrario.

Si lo ejecuto el programa en la version DLL los datos que fallan son en varios vehiculos, no como en C, eso si solo fallan valores declarados integer en C y que los manejo como tipo single en visual.

La duda es por que al debugar si parece que el programa se ejecute sin problemas, en el momento de ejecutar el programa falla?

Es un error muy esquivo!! Con anterioridad tuve problemas al leer strings mezclados con numeros, si declaraba un valor string con un espacio de memoria muy grande (ej, cadena[30]) y luego leia pocas letras, a veces la cadena se llevaba parte del valor numerico que habia despues de esta: no paraba de leer al llegar ' ' a un espacio en blanco.
No se si el error puede ser algo asi.

Un trozo de la funcion lee datos, las variables son las que corresponden en cada caso float, int...

in = fopen("vehiculos.txt", "r");
if (in == NULL)
return 0;
else
{
cont=0;
while (!feof(in))
{
fscanf(in,"%s", m);
v.pon_marca ( m);
fscanf(in," %s", n);
v.pon_modelo (n);
fscanf(in," %d", &a);
v.pon_anho ( a);
fscanf (in," %d", &b);
v.pon_peso ( b);
fscanf (in," %d", &c);
v.pon_cilindrada ( c);
fscanf (in," %f", & f);

S http://foro.webdearde.com/posting.php?mode=post&f=16&sid=eb4f8dd8841fff4a0167c13dc4cf6305# i" onclick="window.open(this.href);return false; no soy capaz de hacer que funcione un scanf no se que programa puedo hacer que sirva de algo!

Os agradezco cualquier comentario que podais hacerme!

Gracias de antemano,

Responder
21 respuestas
volcano
Respuestas: 51
(@volcano)
Trusted Member
Registrado: hace 15 años

Esta semana la voy a tener muy chunga y podre mirar nada de el codigo.
Las funciones no son unas buenas y otras malas, simplemente unas se adaptan mejor que otras a tu problema.
Y otra cosa mas...a programar se aprende programando, investigando nuevas funciones, y dando una vuelta mas de tuerca a la posible solución!

Ánimo!

Responder
oriol
Respuestas: 18
Topic starter
(@oriol)
Active Member
Registrado: hace 13 años

Hola Volcano!

Gracias por tu tiempo y tu paciencia!

Totalmente de acuerdo se hace camino al andar lo que no quita que un buen consejo a tiempo vale su peso en oro!

Oriol

Responder
Página 5 / 5
Compartir: