Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: saltimbanki en 12 Noviembre 2020, 10:31 am



Título: Me pisotean las variables
Publicado por: saltimbanki en 12 Noviembre 2020, 10:31 am
Vereis estoy haciendo un programilla que se trata de pasar un fichero historico plano uuna StringGrid, empece por abrir el ficero en c, y nada , se me pisoteaban los datos, probe con c++, con getline,  y nada, tambien se pisoteaban los datos y ya por ultimo he probado con c y un swirch, vereis, aqui esta la struct;

Código
  1. struct c
  2. {
  3.     char fecha[10];
  4.     char hora  [12];  // Marca hasta mmilisegundos
  5.     int  rx;
  6.     int  tx;
  7. }readin;

pues bien, cuando empiezo a cargar la fecha no pasa nada,la coje perfectamente lo 10 primeras variales, el problema viene despues, cuando empiezo a cargar la hora, se me va marcando la hora, pero al mismo tiempo que cargamos la hora, el aparatejo este me añade los dato s de la hora tambien afinal de fecha, es decir

consigo meter :2020-10-21, esto lo mete bien en fecha y el programa pasa a otra operacion,
pero cuando empiezo a meter la hora en el campo hora me pasa esto

campo hora :13:14:50.669, pues segun meto esto es hora tambie me lo añade a fecha

Algien sabe por que ocuerre esto ???
Saludos



Mod: Obligatorio el uso de etiquetas GeSHi


Título: Re: Me pisotean las variables
Publicado por: MAFUS en 12 Noviembre 2020, 17:17 pm
Pon el código que se encarga de leer todos los datos del fichero.


Título: Re: Me pisotean las variables
Publicado por: CalgaryCorpus en 14 Noviembre 2020, 16:35 pm
Si lees un string que tiene X caracteres visibles tienes que reservar 1 espacio mas para poder guardar la marca de fin de string, o sea el tamano tiene que ser X+1, y si al momento de leer, lees X caracteres, asegurate de poner el 0 en la posicion final del arreglo.

Si no tienes intenciones de imprimir y solo guardas y no usas ninguna funcion de strings, no es necesario este espacio adicional, pero dado lo que te ocurre, tengo la impresion que tu si necesitas ese espacio adicional.