SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: fap1603 en Sábado 29 de Mayo de 2004, 16:26
-
Hola a todos, les comento; estoy haciendo un programa que lee un fichero binario, tengo variables int, long, char. el problema esta cuando declaro mas de una variable int, al almacenar algun dato dentro de esta, me arroja un valor que no es el correspondiente. de la misma manerame pasa con las variables long, si declaro mas de 2, la tercera o el resto me arroja valores que no son validos, si utilizo la misma variable repetidas veces no me da error, pero deseo saber a que se debe esto, pues la necesidad de asignar una variable para un dato diferente es primordial. Muchas gracias.
-
Trata de enviar la parte del codigo que te hace problemas, para ver donde esta la falla. Mencionar, por favor, el compilador usado.
-
aqui pedazo de codigo, segun lo solicitado; Estoy utilizando Visual C++, escribo todo el codigo, no utilizo nada pre definido, todo lo escribo a mano., no uso mfc, ni api, aunque no se como mostrar el dialogo abrir de la api de windows, lo he probado y no me sale.
VOID leebin(HWND hWnd)
{
char codigo[8];
int atribs;
int nptos;
long ptomax;
long ptomin;
long ptos;
long atbtxt;
int i;
char *texto;
while(!feof(fbinario))
{
fread(codigo,1,8,fbinario); //lee binario
fprintf(stream2,"%s\n",codigo);//pinta ascii
fread(&atribs,2,1,fbinario);//lee binario
fprintf(stream2,"%d\n",atribs);//pinta ascii
fread(&nptos,2,1,fbinario);//lee binario
fprintf(stream2,"%d\n",nptos);//pinta ascii
for (i=1;i<=3;i++) //extrae minimos
{
fread(&ptomin,4,1,fbinario);//lee binario
fprintf(stream2,"%d\n",ptomin);//pinta scii
}
for (i=1;i<=3;i++) //extrae maximos
{
fread(&ptomax,4,1,fbinario);//lee binario
fprintf(stream2,"%d\n",ptomax);//pinta scii
}
for (i=1; i<=3;i++) //extrae atrib txt
{
fread(&atbtxt,4,1,fbinario);//lee binario
fprintf(stream2,"%d\n",atbtxt);//pinta ascii
}
if (codigo[0]==67)
{
for (i=1;i<= (atribs * 3);i++)
{
fread(&ptos,4,1,fbinario);//lee binario
fprintf(stream2,"%d\n",ptos);//pinta ascci
}
}
else
{
if (codigo[0]==84)
{
for (i=1;i<= 3;i++)
{
fread(&ptos,4,1,fbinario);//lee binario
fprintf(stream2,"%d\n",ptos);//pinta ascii
}
//redimension de cadena de texto
fread(texto,1,(atribs-1) * 12 ,fbinario);//lee binario
fprintf(stream2,"%s\n",texto);//pinta ascci
}
}
//limpiar variables
}
//cerrar ficheros
return;
}