duda getch() - lenguaje C

SiNSoNiDo

me preguntaba si existe alguna función en C q sustiuya al getch() en el siguiente ejemplo:

include ...
.
.
.
{
.
.
.
printf("Pulsa una tecla para continuar.");
getch();
}

como vereis de lo úniko q se trata es de q haga una pausa para q se vea el mensaje "Pulsa una tecla para continuar." hasta q yo pulse una tecla y siga el programa, pero me gustaría saber (como ya he dicho) si existe alguna otra función q haga una pausa así hasta q pulse una tecla o haga una pausa durante un tiempo determinado.
thx.

aLeX

Yo comence usando un scanf, y después el getch. Creo que no hay mas trucos. Quizás un delay... pero eso no te sirve.

B

con la biblioteca conio.h (#include <conio.h>), pones system("pause");

ya te hace el solo una pausa y te pone "Pulse una tecla para continuar . . .", vamos, que hasta sobra el printf.

SiPoX

wenas!

También existe la función kbhit(); que detecta cuando una tecla es pulsada. También está en la cabecera conio.h

Ejemplo:

printf("Presiona una tecla");
while (!kbhit());

/* hasta que no se pulse algo no pasamos a las siguientes lineas */

printf("\r\ncontinuamos...\r\n");

Saludos!

GasGas

Esta ultima respuesta no la veo muy util la verdad ya que si entra en ese while hasta que se pulse una tecla se esta haciendo una espera activa, que lo unico que hace es consumir recursos (aunque sea mu poco), cosa que a la larga no puede ser buena. Yo siempre he usado el getch y hasta el momento sobrado :) y en caso de que esa funcion no exista por te la haces tu y listo que asi hasra exactamente lo que tu quieras.

Lickham

No te gusta el getch? :D Yo lo uso siempre, me parece la solución mas valida.... otra funcion que haga lo mismo.... pues el getche() xD pero tampoco te servira..... pues no se, las soluciones q te han dado aqui son bastante buenas, tu mismo.

Lick

SeiYa

Tambien tienes getchar(); xD, bueno, lo del system("pause"); lo que hace, es como si utilizaras el pause de ms2, pero igual si tratas de usar ese programa en otro sistema operativo, es posible que no conozca el comando pause...

Siempre puedes poner un delay(milisegundos); y que no siga hasta que pasen esos milisegundos... tienes muchas formas, no veo el por que no te gusta el getch();

Un saludo...

Alperini

conio.h ^^

r2d2rigo

Prueba con sleep(tiempo_en_ms)
No me acuerdo de la libreria, creo que tambien era conio.h ^^

SiNSoNiDo

no es q no me gustase el getch() solo q necesitaba un sustituyo de ese tipo para un programa q estaba haciendo, pues con el getch() me daba un extraño error (paranoias del borland...).
thx a todos x responder.

javithelong

Conio no es una libreria standar de C (ANSI C) por lo que si cambias de maquina, de SSOO o de compilador o algo, probablemente no funcione (prueba a meter el conio.h en linux y verás a que me refiero xD)

Un saludo

LiuM

si el mas basico es el system("pause"), al menos en lo que llevo aprendido

PD: Creo q rula con #include <cstdlib>

R

#include<dos.h>
delay(Milisegundos,1000 por ejemplo);
no necesita que pulses tecla

Usuarios habituales