SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: krnl64 en Lunes 25 de Mayo de 2009, 22:16
Título:
corrupcion de pila leer caracter
Publicado por:
krnl64
en
Lunes 25 de Mayo de 2009, 22:16
Hola, quiero leer un carácter de entre una serie de caracteres permitidos con scanf.
Por qué me falla este code si le estoy diciendo que lea solo 1 caracter ?
Código: C
unsigned
char
caracter
=
0
;
scanf
(
"%1[1234]"
,&
caracter
)
Gracias.
Título:
Re: Fallo cadena de formato scanf
Publicado por:
m0skit0
en
Martes 26 de Mayo de 2009, 11:05
Porque no le has dicho que es un carácter :lol:
Código: C
/* No hace falta poner unsigned */
char
c
;
scanf
(
"%c"
,&
c
)
;
Título:
Re: Fallo cadena de formato scanf
Publicado por:
krnl64
en
Martes 26 de Mayo de 2009, 16:28
Eso ya lo sabia y no es lo que queria.
Quiero que el usuario solo pueda introducir los caracteres del 1 al 4 nada más.
Como ésto:
Código: C
char
buffer
[
50
]
;
scanf
(
"%[1234]"
,
buffer
)
;
Eso solo dejara entrar en el buffer los numeros del 1 al 4.
Lo mismo pero para leer un caracter.
Título:
Re: Fallo cadena de formato scanf
Publicado por:
m0skit0
en
Martes 26 de Mayo de 2009, 16:35
Cita de: "krnl64"
Eso ya lo sabia y no es lo que queria.
La próxima vez explícate mejor. :hola:
Título:
Re: Fallo cadena de formato scanf
Publicado por:
krnl64
en
Martes 26 de Mayo de 2009, 17:18
Vamos haber si esto se entiende.
Código: C
char
buffer
[
50
]
;
scanf
(
"%48[1234]"
,
buffer
)
;
Ese code me funciona perfecto. Almacenara en buffer 48 caracteres del 1 al 4 ignorando el resto que se teclee.
Pero en vez de eso, quiero leer un caracter permitiendo solo los numeros del 1 al 4 y almacenarlo en un unsigned char.
Código: C
unsigned
char
caracter
=
0
;
scanf
(
"%1[1234]"
,&
caracter
)
Este código me corrompe la pila y quiero evitarlo.