• Miércoles 20 de Noviembre de 2024, 14:34

Autor Tema:  Re: entrada de texto  (Leído 2000 veces)

djxim

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
    • http://www.ahora-vas-y-lo-cascas.es.fm
Re: entrada de texto
« en: Domingo 17 de Noviembre de 2002, 19:17 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: entrada de texto
« Respuesta #1 en: Jueves 28 de Noviembre de 2002, 21:13 »
0
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

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: entrada de texto
« Respuesta #2 en: Lunes 20 de Enero de 2003, 03:44 »
0
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

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
entrada de texto
« Respuesta #3 en: Viernes 14 de Marzo de 2003, 17:10 »
0
:alien:
para capturar un solo caracter sin presionar enter utiliza:

caracter=getche();
:lightsabre:
suerte
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io