Я просто играю с ncurses и так далее, и я обнаружил действительно странное поведение.
Когда я использую initscr() из библиотеки ncurses, а затем использую обычный getchar(), программа завершается после нажатия первой клавиши.
Нормальное поведение getchar(), которое я ожидаю, заключается в том, что я могу печатать (более или менее) до тех пор, пока не нажму клавишу возврата.
#include "curses.h"
int main()
{
initscr();
getchar();
//endwin();
return 0;
}
Может ли кто-нибудь объяснить мне, почему это происходит?
getchar()
перед выходом. Включитеendwin()
, если вам не нравится сбрасывать характеристики терминала (или, я полагаю, если вы не используете IDE, которая создает новое окно терминала при запуске программы). Когда вы используетеinitscr()
или подобное, вы меняете правила для стандартного ввода. Не ожидайте нормального поведения; правила изменились. - person Jonathan Leffler   schedule 15.10.2017