SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: djxim en Domingo 17 de Noviembre de 2002, 19:17
-
holass
estoy buscando una función similar a la getch() de conio.h en windows pero que sea c standar.
no hay alguna función que lea un caracter sin esperar que se pulse la tecla intro?
muchas gracias:P
-
Hola:
Lo primero es que debes decir si la quieres para Linux o para windows, porque si es para windows, como ya tu lo sabes, el "getch" de la conio.h te puede ayudar con lo que quieres; pero si es para Linux tambien puedes usar el mismo "getch" y te haria la misma funcion, pero se encuentra en las librerias "ncurses" y "curses.h".
Ah, me parece que en windows tambien tienes "kbhit" que te puede funcionar como el "getch".
Si te interesa algun ejemplo en linux, aqui tienes el siguiente:
#include <stdio.h>
#include <ncurses.h>
#define KEY_ESC ' 33'
main ()
{
int c,x=1,y=1;
initscr(); //Inicializo Ncurses.
keypad(stdscr,TRUE); //Permito el mapeo de las teclas de funciones en la pantalla.
while ((c=getch())==KEY_RIGHT) //Leo la tecla presionada.
{
mvprintw(x,y,"A"); //Me muevo a las coordenadas (x,y) e imprime la letra "A".
if (y<=10) y=y+1; //Aumenta las columnas.
else {x=x+1;y=1;printw("n");} //Aumenta la fila, hace la columna 1 y baja a una nueva linea.
}
refresh(); //Refresco de pantalla para sacar los caracteres.
endwin(); //Finalizar Ncurses.
}
Lo compilas: gcc -o nombre nombre.c -l ncurses
Suerte, y espero y te ayude.
Ariel.
-
weno puedes hacerlo de la siguiente manera:
#include<conio.h>
#include<stdio.h>
#define ESC 27
main()
{
char c='a';
while(c!=ESC){
if(kbhit())
c=getch();
}
}
-
:alien:
para capturar un solo caracter sin presionar enter utiliza:
caracter=getche();
:lightsabre:
suerte