elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  (SOLUCIONADO) me dicen si les funciona!!
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: (SOLUCIONADO) me dicen si les funciona!!  (Leído 6,859 veces)
Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: (SOLUCIONADO) me dicen si les funciona!!
« Respuesta #10 en: 22 Febrero 2011, 04:49 am »

Si escribes "%c" el programa espera leer un char y guardarlo en la variable.
Si escribes "%s" el programa espera leer un string y guardarlo en la variable.

Tu problema radicaba en la lectura del caracter de salto de línea ('\n') el cual queda almacenado en el buffer de entrada cuando apretas enter al momento de escribir un caracter o de realizar determinada entrada de datos por el stdin. Cuando ingresabas el primer caracter y le dabas a enter, había dos caracteres almacenados en el buffer, el que tu escribiste, y el enter. El primero, se le asignaba a tu variable, el segundo, se le asignaba a la próxima variable tipo char la cual pedías tomar un valor!

Lo que podías hacer era fabricarte una funcion para recortar ese caracter de salto de línea.

Tu problema se solucionó al incluir "%s" porque así, el programa toma TODA la línea (y no solo un caracter por vez), es decir, toma tanto el caracter que tu escribistes, como el salto de línea. Si no estoy mal, y corríjanme si me equivoco, lo que sucede ahora es que, como tu variable soporta solo 1 byte por ser del tipo char, se le asigna el primer caracter a esta, y se "elimina" el caracter de salto de línea.


« Última modificación: 22 Febrero 2011, 04:51 am por Ferno » En línea

;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Re: (SOLUCIONADO) me dicen si les funciona!!
« Respuesta #11 en: 22 Febrero 2011, 15:54 pm »

Buenisimo ferno!!
gracias por aclararme la duda.

Saludos!! ;-)


En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: (SOLUCIONADO) me dicen si les funciona!!
« Respuesta #12 en: 22 Febrero 2011, 18:49 pm »

El problema es cuando metes más de un carácter... BoF total y nunca más claro :P Con %s debería soltarte un waring, es un fallo de seguridad serio... Sencillamente abrid el programa con GDB y meterle unas 20 ases...
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Solucionado]No me funciona Internet en mi netbook!
Redes
Hyman68 5 6,373 Último mensaje 10 Octubre 2010, 03:24 am
por Hyman68
Instalo una y no funciona la otra Ayuda!!![solucionado]
Windows
flacc 3 4,284 Último mensaje 17 Enero 2011, 01:45 am
por flacc
SSH X11 Forwarding. Como Funciona? (Solucionado)
Redes
frogstalon 2 4,180 Último mensaje 8 Septiembre 2011, 22:04 pm
por frogstalon
[Solucionado].Net Global.asax no funciona
.NET (C#, VB.NET, ASP)
NetJava 2 5,283 Último mensaje 21 Marzo 2013, 01:10 am
por NetJava
href no funciona sin https:// (solucionado)
PHP
basickdagger 2 3,133 Último mensaje 9 Mayo 2013, 18:46 pm
por basickdagger
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines