Programación General > C/C++

 corrupcion de pila leer caracter

(1/1)

krnl64:
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.

m0skit0:
Porque no le has dicho que es un carácter  :lol:


--- Código: C ---/* No hace falta poner unsigned */char c;scanf("%c",&c); 

krnl64:
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.

m0skit0:

--- Cita de: "krnl64" ---Eso ya lo sabia y no es lo que queria.
--- Fin de la cita ---
La próxima vez explícate mejor.  :hola:

krnl64:
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.

Navegación

[0] Índice de Mensajes

Ir a la versión completa