gpt4 book ai didi

c - 从控制台读取输入而无需无条件等待(非等待 scanf)

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

我正在尝试编写代码以连续从控制台读取输入并更新应用程序中的变量。但是,如果我们使用 scanf 函数,每当该函数命中时,它都希望通过控制台收到用户的输入,并且仅当它收到来自控制台的输入时才继续执行进一步的指令,否则它会无条件等待。

我的代码是这样的

    int x, y;
while(1)
{
scanf("%d", &x);
y = x;
----
----
//Remaining code for execution
}

我的期望是应用程序不应该等待来自控制台的输入。如果用户在控制台中输入了一些输入,它应该读取并使用该输入,否则即使没有输入,应用程序也应该执行剩余的指令或者它应该使用旧值。有没有其他方法可以在不使用 scanf 的情况下编写此类代码?谢谢!

最佳答案

可以通过select()/epoll()函数来获取输入,如果超时会继续进行。由于 stdin 也是一个 FD,您可以注册 FD 以选择在给定的 FD 上工作。

引用:https://stackoverflow.com/a/21198059/6686352

关于c - 从控制台读取输入而无需无条件等待(非等待 scanf),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58110168/

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