我正在尝试开发一个程序,我需要先检查用户是否输入了输入。如果用户没有输入,则必须执行一个语句块,如果用户提供输入,则执行一些其他语句。使用getche()或getchar()需要您提供输入,但即使没有输入,我也需要执行程序。是否有可能做到这一点? 我必须进行多任务处理,因此连续重复执行一个函数,同时要求输入运行单独的函数。即使用户没有输入,程序也必须继续.. 我想如果程序的两个部分之间的执行时间非常短,并且我在循环内重复重复每个函数的一个片段,那么它看起来就像是多任务处理。 感谢..
答案 0 :(得分:2)
在Linux中,您可以轮询stdin
:
bool isKeyPressed(int timeout) {
struct pollfd fds[1];
fds[0].fd = STDIN_FILENO;
fds[0].events = POLLIN | POLLPRI;
return poll(fds, 1, timeout) > 0;
}
在Windows上有一些等价物:
bool isKeyPressed(int timeout) {
DWORD res = WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), timeout);
return res == WAIT_OBJECT_0;
}
答案 1 :(得分:0)
您可以使用stdin
检查feof
上的文件结尾。