如何检查用户是否输入?

时间:2014-01-13 14:26:34

标签: c input output

我正在尝试开发一个程序,我需要先检查用户是否输入了输入。如果用户没有输入,则必须执行一个语句块,如果用户提供输入,则执行一些其他语句。使用getche()或getchar()需要您提供输入,但即使没有输入,我也需要执行程序。是否有可能做到这一点? 我必须进行多任务处理,因此连续重复执行一个函数,同时要求输入运行单独的函数。即使用户没有输入,程序也必须继续..  我想如果程序的两个部分之间的执行时间非常短,并且我在循环内重复重复每个函数的一个片段,那么它看起来就像是多任务处理。 感谢..

2 个答案:

答案 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上的文件结尾。