Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: momo75 en 13 Enero 2015, 00:43 am



Título: Eclipse no me reconoce las funciones getch() y cls()
Publicado por: 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.


Título: Re: Eclipse no me reconoce las funciones getch() y cls()
Publicado por: engel lex en 13 Enero 2015, 00:47 am
son de la biblioteca conio.h, eso solo lo tiene dev c++ y se desaprueba su uso


Título: Re: Eclipse no me reconoce las funciones getch() y cls()
Publicado por: sabeeee en 13 Enero 2015, 01:20 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
  1. void BorraPantallas(){
  2. if( system("cls") )
  3. system("clear");
  4. }

Y getchar() para el getch() que generalmente lo reemplaza muy bien.


Título: Re: Eclipse no me reconoce las funciones getch() y cls()
Publicado por: Yoel Alejandro en 13 Enero 2015, 02:48 am
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.



Título: Re: Eclipse no me reconoce las funciones getch() y cls()
Publicado por: momo75 en 13 Enero 2015, 18:16 pm
Muchas gracias por la ayuda, ahora funciona perfectamente!