【问题标题】:ncurses - No output from padncurses - 垫没有输出
【发布时间】:2018-03-10 11:22:02
【问题描述】:

试图从 pad 获取输出,但只得到一个空白屏幕。

#include "curses.h"

int main()
{
    initscr();
    WINDOW *pad = newpad(25, 80);

    wprintw(pad, "Hello, World!\n");
    prefresh(pad, 0, 0, 0, 0, 25, 80);

    wgetch(pad);

    delwin(pad);
    endwin();
}

【问题讨论】:

    标签: c ncurses


    【解决方案1】:

    在 40x80 屏幕中运行,我得到输出(“Hello, World!”消息)。也许您的屏幕只有 24x80。 prefresh 调用的参数不能超过屏幕大小,并且由于您没有启用滚动 (scrollok),wgetch 挂起而不显示任何内容。

    此示例适用于:

    #include <curses.h>
    
    int main(void)
    {   
        initscr();
        WINDOW *pad = newpad(LINES+1, COLS);
    
        wprintw(pad, "Hello, World!\n");
        prefresh(pad, 0, 0, 0, 0, LINES-1, COLS);
    
        wgetch(pad);
    
        delwin(pad);
        endwin();
        return 0;
    }
    

    【讨论】:

    • 感谢您的回答。所以我的 LINES 和 COLS 的值分别为 25 和 80,但要让 prefresh() 正常工作,我需要将 LINES - 1, COLS - 1 传递给它。 LINES - 1, COLS 由于某种原因不起作用。
    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    相关资源
    最近更新 更多