halfdelay()和cbreak()的区别是什么;获取输入时超时()? 我在用C++编写NKISS的打字游戏,我注意到有 cBuffE()/和半延迟()/Case>函数来切换NKISSIS中的文本输入模式。

halfdelay()和cbreak()的区别是什么;获取输入时超时()? 我在用C++编写NKISS的打字游戏,我注意到有 cBuffE()/和半延迟()/Case>函数来切换NKISSIS中的文本输入模式。,c++,c,ncurses,C++,C,Ncurses,我知道cbreak()用于在读取字符时禁用行缓冲,cbreak()和halfdelay()之间的区别是halfdelay()将一个参数设置为十分之X的阻塞 我很好奇,如果我将cbreak()与timeout()一起使用,它会像halfdelay()一样工作吗 我做了一个实验来观察它们的区别: 使用halfdelay(): 我发现这两种行为都在等待字符并立即退出程序,直到超过1s,所以我想问一下它们在ncurses中是否有差异?半延迟例程用于半延迟模式。它与cbreak非常相似,但在阻塞十分之一秒

我知道
cbreak()
用于在读取字符时禁用行缓冲,
cbreak()
halfdelay()
之间的区别是
halfdelay()
将一个参数设置为十分之X的阻塞

我很好奇,如果我将
cbreak()
timeout()
一起使用,它会像
halfdelay()
一样工作吗

我做了一个实验来观察它们的区别:

使用
halfdelay()


我发现这两种行为都在等待字符并立即退出程序,直到超过1s,所以我想问一下它们在ncurses中是否有差异?

半延迟例程用于半延迟模式。它与cbreak非常相似,但在阻塞十分之一秒后,如果没有键入任何内容,则返回ERR(错误流)

您可以在此处找到有关它的更多信息:

#include <ncurses.h>
int main()
{
    initscr();
    halfdelay(10); // blocking for 1s
    getch();
    endwin();
}
#include <ncurses.h>
int main()
{
    initscr();
    cbreak();
    timeout(1000); // blocking for 1s
    getch();
    endwin();
}