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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  "bloquear" teclas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: "bloquear" teclas  (Leído 1,562 veces)
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
"bloquear" teclas
« en: 21 Marzo 2014, 01:58 am »

Saludos

Si por ejemplo yo quiero escribir en un archivo solamente dígitos del 0 al 9, que no se acepte ningun otro caracter, y sin necesidad de hacer ninguna otra validación(como leer el archivo y verificar caracter por caracter que todos sean numeros), hay alguna manera de "bloquear" algunas teclas y que no le permita al usuario ingresar caracteres que no sean numeros?? esto se podria hacer???


En línea

rulovive

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
Re: "bloquear" teclas
« Respuesta #1 en: 21 Marzo 2014, 02:21 am »

sip.. con un if que solo permita leer carateres del 0 al 9... esto se hace con el codigo ascii.. cada tecla tiene un valor numerico empezando por la primera letra del abecedario en minusculas, hasta la ultima letra del abecedario en mayuscula... despues de eso siguen los numeros y ellos tienen un caracter ascii (no recuerdo si el orden de caracteres de teclado es asi o van primero los numeros) solo pon en la condicion que si el caracter pulsado es menor al que corresponde al 1 y mayor al que corresponde al 0 -el cual es el ultimo de los diez- la tecla sea nula... si estoy equivocado corrijanme XD


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: "bloquear" teclas
« Respuesta #2 en: 21 Marzo 2014, 02:38 am »

rulovive XD si, fallas en muchas cosas XD

el mayor es el 9, el menor siempre es 0, XD 0<9 siempre, los numeros vienen primero que las letras mayusculas, luego las minúsculas... los numeros empiezan en el carácter 48 (0x30), las mayusculas en 64+1 (0x40+1) (lo digo así porque es la mejor manera de recordarlo)  y las minúsculas en 96+1 (0x60+1)

por otr lado el lo que quieres es que en consola no se escriba cuando la tecla no sea valida, justamente la intencion es no revisar caracter por caracter

aunque no se si es buena practica... con <conio.h> puedes, con la funcion getch();


un ejemplo

Código
  1. #include <iostream>
  2. #include <conio.h>
  3. #define UP_ARROW 224
  4. using namespace std;
  5.  
  6. int main() {
  7.     int cInput = getch();
  8.     if(cInput==UP_ARROW){cout << "fin" << endl;}
  9.     cin.get();
  10. return 0;
  11. }
  12.  
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
rulovive

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
Re: "bloquear" teclas
« Respuesta #3 en: 21 Marzo 2014, 02:42 am »

rulovive XD si, fallas en muchas cosas XD

el mayor es el 9, el menor siempre es 0, XD 0<9 siempre, los numeros vienen primero que las letras mayusculas, luego las minúsculas... los numeros empiezan en el carácter 48 (0x30), las mayusculas en 64+1 (0x40+1) (lo digo así porque es la mejor manera de recordarlo)  y las minúsculas en 96+1 (0x60+1)

por otr lado el lo que quieres es que en consola no se escriba cuando la tecla no sea valida, justamente la intencion es no revisar caracter por caracter

aunque no se si es buena practica... con <conio.h> puedes, con la funcion getch();


un ejemplo

Código
  1. #include <iostream>
  2. #include <conio.h>
  3. #define UP_ARROW 224
  4. using namespace std;
  5.  
  6. int main() {
  7.     int cInput = getch();
  8.     if(cInput==UP_ARROW){cout << "fin" << endl;}
  9.     cin.get();
  10. return 0;
  11. }
  12.  

jajaja cierto.... lo habia hecho en modo visual hace muchos años pero no recordaba el orden exacto.. gracias :D
En línea

m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
Re: "bloquear" teclas
« Respuesta #4 en: 21 Marzo 2014, 18:50 pm »

gracias por sus respuestas, creo que no es considerado buena práctica de programación usar la librería conio.h, me dijeron que también podía hacerlo con eventos de teclado, solo que no he encontrado mucha información de como hacer uno
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines