ncurses即使初始化后也不做任何事情

问题描述

因此,我正在关注Linux中ncurses的教程,但是它没有任何作用。这是我的代码

#include <ncurses.h>
int main()
{
    initscr();
    printw("Tset");
    refresh();
    endwin();
}

当我使用g++ main.cpp -lncurses进行编译时,它可以工作,但什至不输出任何东西。甚至不清除屏幕。我该如何解决

解决方法

这是因为endwin()在打印“ Tset” 之后正在关闭ncurses窗口。它很快,您看不到它。您可以让程序在关闭窗口以查看输出之前等待按下某些键。在结束窗口之前,请使用getch()

#include <ncurses.h>
int main()
{
    initscr();
    printw("Tset");
    refresh();
    getch();    //add this line to wait for keypress
    endwin();
}