gpt4 book ai didi

c - 为什么空的 printf 允许我继续从标准输入读取数据?

转载 作者:太空狗 更新时间:2023-10-29 15:07:55 27 4
gpt4 key购买 nike

代码

while (1)
{
keycode = key_hook();
if (keycode == SPACE || keycode == BKSPACE)
{
render_again = 1;
}
if (keycode == ESC)
break;
if (render_again)
{
render_again = 0;
render(all);
}
dprintf(1, ""); //I have no idea why this prevents the program from freezing
}
int key_hook()
{
char buffer[4];

read(0, buffer, 4);
return (*(unsigned int *)buffer);
}

好的,所以这段代码处理屏幕上文本的重绘。使用 termcaps (tputs(tgetstr("us, NULL")......) 对某些文本行加下划线或突出显示。一切打印正常,但在第一次重绘文本后,显然除非存在 dprintf/printf,否则会卡住。key_hook 函数只是从 stdin 读取 4 字节 并将它们转换到 int

最佳答案

当我上次在这里工作时,我的 key_hook 版本有一个单字节读取循环。这被 1 秒的警报和到目前为止的数据是否是键前缀的逻辑打破了。

报警中断读取,停止卡住

关于c - 为什么空的 printf 允许我继续从标准输入读取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34784529/

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