gpt4 book ai didi

c - Ncurses,非阻塞getch错过了第一个字符

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:05 25 4
gpt4 key购买 nike

我在我的应用程序中使用 Linux 和 ncurses,并且我使用 getch 作为使用 nodelay 的非阻塞。问题是在使用 getch 循环输入时,它总是会错过第一个字符。例如,输入“Helloworld”将打印为“elloworld”。目前我似乎没有发现任何问题,但可能是因为我已经盯着代码看了很长时间,或者我漏掉了一些东西。

    while(TRUE)
{
gchar chr;
gchar *cmd = g_malloc(50);

if((getch()) == ERR)
{
// no user input
}
else
{
gint i = 0;

while((chr = getch()) != '\n')
{
cmd[i] = chr;
waddch(ncurse->window, chr);
wrefresh(ncurse->window);
i++;
}

waddstr(ncurse->log, cmd);
wrefresh(ncurse->log);

wmove(ncurse->window, ncurse->window->_maxy, 2);
wclrtoeol(ncurse->window);

wrefresh(ncurse->window);
}

g_free(cmd);
}

最佳答案

你期待什么?

if((getch()) == ERR)
{
// no user input
}

丢弃第一个字符,如果有的话。

关于c - Ncurses,非阻塞getch错过了第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17600515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com