Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


getchar() de stdio y cin.get() de iostream

Preguntas y respuestas sobre el lenguaje de programacion C/C++

getchar() de stdio y cin.get() de iostream

Notapor Voyez el Mié Dic 05, 2007 12:17 pm

Vereis, hace un tiempo estuve programando en el ortopedico Turbo C 3 que ya tiene sus años, y utilizaba la funcion getch() de la libreria conio.h para crear pausas en el programa a la espera de una tecla cualquiera. Al presionarse una tecla la funcion acababa retornando el valor de la tecla pulsada.
Ahora estoy programando en kubuntu, usando el gcc, y ya no hay ni rastro de la vieja conio.h, que ni si quiera era estandar.
Asi que me puse a hacer pruebas usando al principio getchar() de la stdio.h, y luego usando la cin.get() de iostream, con codigos como estos:

Código: Seleccionar todo
int main()
{
     char tecla;

     printf("Aprieta una tecla:");
     tecla = getchar(); //para que el programa se detenga a la espera de una tecla;
     printf("Has apretado la tecla %c", tecla);
     return 1;
}


Código: Seleccionar todo
int main()
{
     char tecla;

     cout << "Aprieta una tecla:";
     cin.get(); //para que el programa se detenga a la espera de una tecla;
     cout << "Has apretado una tecla";
     return 1;
}


En los dos casos, esperaba un comportamiento similar al de getch(), pero el resultado és que aunque retornan ciertamente el valor de la primera tecla que presiono, no salen de la funcion hasta que no presiono intro, como un scanf.
Mi duda aqui és si realmente este es el resultado que deberia obtener, porque leiendo las descripciones en manuales de C i C++ me da a entender que la funcion deberia saltar a la primera tecla. Y si realmente no funcionan asi, a ver si alguien me dice como conseguir lo que intento con funciones de librerias estandar.
Muchas Grácias
Voyez
Novato
Novato
 
Mensajes: 3
Registrado: Mié Dic 05, 2007 12:12 pm

Re: getchar() de stdio y cin.get() de iostream

Notapor ivancp el Dom Dic 09, 2007 6:51 pm

Intenta con getch() en vez de getchar(), por que getchar produce eco en la pantalla, y getch no.

Tambien te sugiero que revises este enlace:

http://www.linuxfocus.org/Castellano/Ma ... e233.shtml
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 301
Registrado: Jue Sep 06, 2007 12:57 pm


Volver a C/C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados