Eclipse no me reconoce las funciones getch() y cls()

Iniciado por momo75, 13 Enero 2015, 00:43 AM

0 Miembros y 2 Visitantes están viendo este tema.

momo75

Hola. Estoy empezando con C++ y Eclipse no me reconoce las funciones getch() ni cls().
¿Es normal? Gracias.

engel lex

son de la biblioteca conio.h, eso solo lo tiene dev c++ y se desaprueba su uso
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

sabeeee

Cita de: momo75 en 13 Enero 2015, 00:43 AM
Hola. Estoy empezando con C++ y Eclipse no me reconoce las funciones getch() ni cls().
¿Es normal? Gracias.

Un poco malo pero yo utilizaría
Código (cpp) [Seleccionar]
void BorraPantallas(){
if( system("cls") )
system("clear");
}


Y getchar() para el getch() que generalmente lo reemplaza muy bien.
"Vengándose, uno iguala a su enemigo; perdonando, uno se muestra superior a él."
Francis Bacon

Yoel Alejandro

Lo que pasa es que getch() y cls() son de la biblioteca conio.h, la cual a su vez es propiedad intelectual de Borland (lo que ya explicó engelx). Por lo tanto sólo son admitidas por compiladores compatibles con Borland, y generalmente bajo sistema operativo Windows (se puede emular en Linux también).

Por ello, para asegurar que tu programa funcione todas las plataformas, debes recurrir a funciones estándares, como gecthar() en lugar de getch(), y en el caso de cls() reemplazar como dijo sabee por una orden system equivalente, aunque caemos en el mismo problema de dependencia del Sistema Operativo. Una alternativa siempre compatible es imprimir tantos '\n' como sea necesario para "borrar" la pantalla, que es de hecho lo que hacen cls y clear.

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)

momo75

Muchas gracias por la ayuda, ahora funciona perfectamente!