SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: abufajad en Martes 29 de Abril de 2003, 16:16

Título: Re: ncurses, linux y la preciada getch()
Publicado por: abufajad en Martes 29 de Abril de 2003, 16:16
muchachos, les pido, ruego ayuda por que desde mucho tiempo he buscado como ejecutar la funcion gecth() del conio.h en linux con ncurses!!! he intentado todo!!! he leido haqs, manuales, foros y nada!!! uso gentoo linux, programo con kdevelop y si, tengo ncurses :angel: quiero hacer un simple programa:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <iostream.h>
#include <stdlib.h>
#include <curses.h>
int main()
{
  initscr(); // esto lo vi y no se si es correcto para //inicializar ncurses
  cout << "Hello, World!" << endl;
  getch();
  endwin(); //finalizar ncurses
  return EXIT_SUCCESS;
}

 y errores me acechan, undefined reference to X donde X es el nombre de las funciones, wgetch, stdscr, etc.
es simplemente para hacer en un programa:

presiona un tecla para continuar [enter]
eof

les ruego ayuda. god bless.
Título: Re: ncurses, linux y la preciada getch()
Publicado por: JuanK en Martes 29 de Abril de 2003, 17:07
esta funcion no te sirve de nada en linux porque ocaciona un problema de seguridad, asi que tendras que usar
 initscr(); al incio de tu programa para activar el modo de texto de ncurses.

No utilices esto:
cout << "Hello, World!" << endl
porque esto no es c standart y te va a molestar en linux, utiliza algo mas estandart como pro ejemplo los derivados de printf();

En ves de gecth();
que no existe en lilnux... deberias utilizar wgetch o sus derivados, que pertenecen a ncurses.
Acontinuacion anexo el manual de ncurses sacado del man de linux, claro en ingles , pero te sirve.

suerte

Juank
Título: Re: ncurses, linux y la preciada getch()
Publicado por: desorden en Martes 29 de Abril de 2003, 17:29
Citar
Originalmente publicado por abufajad
 y errores me acechan, undefined reference to X donde X es el nombre de las funciones, wgetch, stdscr, etc.


Olvidaste indicarle al enlazador que vas a usar la biblioteca ncurses: -lcurses

Como te ha dicho juank, no puedes usar las funciones de entrada y salida de C o C++, sino las implementadas en ncurses. Por ejemplo: printw por printf, scanw en vez de scanf, etc.
Título: ncurses, linux y la preciada getch()
Publicado por: JuanK en Martes 29 de Abril de 2003, 17:36
Como dijo desorden , solo aclaro que estas trabajando con ncurses y no con
curses, asi que al compilar coloca al final
-lncurses

para enlazar la libreria.

Juank