manejo de cadenas _scanf

Iniciado por limbertx, 24 Febrero 2013, 18:09 PM

0 Miembros y 1 Visitante están viendo este tema.

limbertx

Holas
soy nuevo en el foro. me llamo limbert y soy de latino.
estudio en la universidad.

estoy aprendiendo ensamblador.
con nasm + gcc + minGW
asi que estaba de maravilla , hasta que me toco un problema duro.
ya busque en el foro , y no encontre nada. en goolgle peor :(

ahora os presento algo simple.
mi problema : es que introduzca una cadena que incluya espacios.

ingreso : "hola mundo"

pero el _scanf solo me captura "hola"  hasta el espacio   :(
ya intente con los distintos formatos. y no logre nada.
pero no funciona ningun formato.

os muestro mi ejemplo

;-------------------------------------...
extern _scanf, _printf, _gets
; introducir una cadena
segment .data
      ms1 db "Introduzca una cadena (menor a 100 caracteres) = ", 0
      frms db "%s",0
      ms2 db "La cadena es : %s", 10,0
segment .bss
      cad resb 10
segment .text
global _main
_main:
      push ms1
      call _printf
      add esp, 4

      push cad
      push frms
      call _scanf
      add esp, 8

      push cad
      push ms2
      call _printf
      add esp, 8
ret


gracias por sus ayudas.

fary

No has encontrado nada porque no as buscado  >:D

simplemente poniendo en google "scanf espacios" salen muchisimos post, como por ejemplo este:

http://www.elrincondelc.com/nuevorincon/foros/viewtopic.php?p=57231&sid=ff5abcaeb21a3fab4e3f7ebd442fc139

:silbar:
Un byte a la izquierda.

MCKSys Argentina

Cita de: limbertx en 24 Febrero 2013, 18:09 PM
y soy de latino.

Y cuál es ese país?  ;D

PS: Bienvenido al foro.  ;)
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


cpu2

Hola

También puedes utilizar la syscall read.

Un saludo.