Programación General > C/C++

 Re: entrada de texto

(1/1)

djxim:
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

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

Satyr:
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();
         }
}

JuanK:
:alien:
para capturar un solo caracter sin presionar enter utiliza:

caracter=getche();
:lightsabre:
suerte

Navegación

[0] Índice de Mensajes

Ir a la versión completa