Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problema escribiendo en pantalla

Estas en el tema de problema escribiendo en pantalla en el foro de C/C++ en Foros del Web. Hice un programa SDL que lee el teclado y almacena la letras del teclado en una variable, para luego imprimir esa variable(con ttf), el problema ...
  #1 (permalink)  
Antiguo 17/09/2010, 09:22
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
problema escribiendo en pantalla

Hice un programa SDL que lee el teclado y almacena la letras del teclado en una variable, para luego imprimir esa variable(con ttf), el problema es que a parte de escribir lo que escribo, escribe algunas cosas mas, por ejemplo, escribes hola y sale holaÄw☼♫ o cosas parecidas.

Hace tiempo me paso lo mismo pero no me acuerdo como lo solucione XD

edito: use std::string y los solucione, pero aun asi me gustaria saber por que si lo declaro
char cadena[10]
pasa lo descrito anteriormente
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD

Última edición por Tikitios; 17/09/2010 a las 09:40
  #2 (permalink)  
Antiguo 17/09/2010, 09:54
 
Fecha de Ingreso: julio-2010
Mensajes: 153
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: problema escribiendo en pantalla

puede ser por que no lo terminas con \0
  #3 (permalink)  
Antiguo 19/09/2010, 03:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 39
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: problema escribiendo en pantalla

Cuando declaras una variable, esta se inicializa con caracteres basura, es decir, caracteres que tenia antes la memoria...

Al declararla con 10 espacios y solo ocular 4 (hola), el resto (6) quedaron sin ser reescribidos. Por eso siempre tenes que declarar la variable con un espacio mas de el que vas a necesitar para utilizar el caracter NULL '\0', este ultimo le dice al compilador "Hasta aqui llego la parte util"y siempre colocarlo al final.

Ej:

Código C++:
Ver original
  1. cin >> MiVariable;
  2.  
  3. MiVariable + '\0';

Abrazo
  #4 (permalink)  
Antiguo 19/09/2010, 08:14
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: problema escribiendo en pantalla

Jajajaja gracias, eso fue una de las primeras cosas que se me ocurrieron, pero estaba medio perdido, en vez de \0 pense que era \n y no me funciono xD

Gracias por la ayuda
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD
  #5 (permalink)  
Antiguo 19/09/2010, 17:19
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: problema escribiendo en pantalla

Una pequeña correccion, el '\0' no es mas que un caracter , el cual es tratado de forma especial por las librerias. Lo que quiero decir que no depende del compilador.

Uno mismo podira rescribirse todas las funciones como strcmp, strlen ,etc para que funcionen con otro caracter como fin de cadena.

Por lo general, las funciones de lectura te agregan el \0 al final de la cadena, Por eso al usar sts::string posiblemente se te soluciono.

Etiquetas: pantalla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:17.