ncurses: formateo de linea extraña

Tengo este código para trabajar con ncurses:

#include  #include  #include  #include  #include  //char a='a'; int c=0; bool ex = false; void mva() { std::cout << "Nothing here yet, move along." << std::endl; } void cho() { std::cout << "Choose a valid option noob!" << std::endl; } void menu() { std::cout << "Welcome." << std::endl; std::cout << "Choose an option" << std::endl; std::cout << "1." << std::endl; std::cout << "2." << std::endl; std::cout << "3." << std::endl; std::cout << "4. About" << std::endl; std::cout << "5. exit" <> c; switch (c) { case 1: mva(); pause(); system("clear"); //unfortunately, there is no clean variant to this :( break; case 2: mva(); pause(); break; case 3: mva(); pause(); break; case 4: std::cout << "About" << std::endl; std::cout << "Programmed by nnmjywg." << std::endl; pause(); break; case 5: std::cout << "Press enter to exit" << std::endl; pause(); ex = true; break; default: cho(); pause(); break; } } endwin(); return 0; } 

Debería funcionar normalmente, pero estoy absolutamente desconcertado cuando veo este extraño formato de línea. Además de eso, tampoco puedo ver lo que ingreso (con std::cin ) Formato de línea extraña

Cuando su progtwig llama a initscr , ncurses (en realidad cualquier implementación de curses) inicializa los modos de terminal para permitir la impresión de retorno de carro y avance de línea (“nueva línea”) por sí mismos. La impresión de un avance de línea no producirá un retorno de carro.

Pero el endl de iostream es solo un endl línea. Cuando imprima en cout de esa manera, verá escaleras.

Cuando se usan curses, cout y cin no son realmente útiles. Use getch (o wgetch ) para leer la entrada. Además, use los curses echo (o noecho ) para controlar si esos ecos hacen eco de la entrada que le da a getch . El echo cursas no tiene ningún efecto en cin (el terminal también se ha configurado para que no se escuche el eco, y las cursas saben cuándo hacer eco).

Otras lecturas:

  • Getch () incompatible con la función de visualización en Linux c ++
Intereting Posts