• Jueves 2 de Mayo de 2024, 04:39

Autor Tema:  Truncar teclas C Linux  (Leído 2119 veces)

NICOLASBLUES

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Truncar teclas C Linux
« en: Jueves 13 de Mayo de 2010, 03:44 »
0
Hola a todos!!

bueno tengo una pequeña duda estaba pensando en que si hay alguna manera de poder truncar o bloquear las teclas cuando se pide que se igresen datos, me explico, supongamos que se pide que se ingrese una cadena y a la hora de teclear por ejemplo la etra "n", nisiquiera se imprima en pantalla cuando la presiono... se que deve haber  alguna manera con directivas o algo asi
yo me imagino que puede ser revisando primero las letras que uno presiona con una funcion como getchar o algo asi pero no se me ocurre del todo como implementarlo
bueno espero que puedan ayudarme

os dejo Saludos.......
  

Aprendiz21Sam

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Truncar teclas C Linux
« Respuesta #1 en: Jueves 13 de Mayo de 2010, 12:09 »
0
Código: C
  1. int i;
  2. char Cadena[20];
  3.  
  4. printf("Cadena: ");
  5. for(i=0; i<20; i++)
  6. {
  7.   Cadena[i]=getch();
  8. }
  9.  

rock_neurotiko

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Truncar teclas C Linux
« Respuesta #2 en: Domingo 16 de Mayo de 2010, 16:42 »
0
También, si no quieres hacer un bucle, lo que puedes hacer en linux es usar la libreria ncurses.h (la que sustituye a conio.h de Turbo C).

Un ejemplo sería:

Código: C
  1.  
  2. #include <stdio.h>
  3. #include <ncurses.h>
  4.  
  5. int main()
  6. {
  7.  
  8. char cadena[60];
  9.  
  10. initscr(); /*Empezamos el modo ncurses*/
  11.  
  12. printw("Escriba la cadena:"); /*Observese como se ha usado printw en vez de printf, eso es porque estamos dentro de una ventana de ncurses, por lo tanto hay que usar printw (ncurses trabaja con "ventanas")*/
  13.  
  14. refresh(); /*Para  refrescar la ventana, no es obligatorio, pero si recomendable*/
  15.  
  16. noecho(); /*Con esta función dices que NO se imprima en pantalla todo lo que sigue*/
  17.  
  18. scanw("%s", &cadena); /*Se usa también scanw en vez de scanf*/
  19.  
  20. echo(); /* Para que se vuelva a visualizar lo siguiente*/
  21.  
  22. printw("Muy bien, ahora, para comprobar que ha funcionado... la cadena es la siguiente: %s", cadena); /*En realidad esto es para que veas que funciona perfectamente, pero seria una tonteria esconderlo y luego enseñarlo xD*/
  23.  
  24. getch(); /*Para salir cuando se pulse una tecla*/
  25.  
  26. endwin(); /*Se termina el modo ncurses*/
  27.  
  28. return 0;
  29.  
  30. }
  31.  

Espero que te haya servido ;)

Ah, y recuerda, para compilar con gcc el codigo seria algo asi:  gcc -lncurses prueba.c -o prueba

NICOLASBLUES

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Truncar teclas C Linux
« Respuesta #3 en: Domingo 16 de Mayo de 2010, 19:11 »
0
Gracias por responder no es exactamente lo que buscaba pero se acerca bastante, enverdad lo que buscaba es truncar ciertas teclas osea digamos que pido que se ingrese un numero la idea seria truncar todo los caracteres que no sean números con esta nueva info se me ocurre que puedo usar getch
no se bien como funciona pero si esta función devuelve el carácter ingresado podría hacer una verificación si es el carácter esperado ingresarlo donde corresponda sino que siga intentando lo voy a probar ahora...


GRACIAS!!


Saludos Cordiales...

rock_neurotiko

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Truncar teclas C Linux
« Respuesta #4 en: Domingo 16 de Mayo de 2010, 19:57 »
0
Ahhhhh, ya se lo que quieres.

Si, con el bucle y getch puedes hacerlo.