2014-01-13 252 views
0

我想開發一個程序,我需要先檢查用戶是否給出了輸入。如果用戶不提供任何輸入,則必須執行一組語句,並且如果用戶給出輸入,則執行一些其他語句。使用getche()或getchar()需要你提供輸入,但是即使沒有輸入被輸入,我也需要程序來執行。是否有可能做到這一點? 我必須做多任務處理,所以要連續反覆地執行一個函數,同時要求輸入來運行一個單獨的函數。即使用戶沒有輸入程序,也必須繼續...... 我認爲如果程序的兩個部分之間的執行時間非常短,並且我在一個循環內重複每個函數的一個片段,它看起來像是多任務處理。 感謝..如何檢查用戶輸入與否?

+0

該程序如何知道用戶是否打算提供輸入? – interjay

+0

在整個程序中,您只需檢查一次輸入,而該函數的其餘部分將自動(並快速)在循環內執行。 – user3124361

+0

所以程序不需要知道我是否提供輸入。我只是按下我的鍵輸入,直到我在循環內重複檢查輸入,這發生得很快(我希望)(我很抱歉,如果我錯了,因爲它只有一個月,因爲我開始學習c) – user3124361

回答

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; 
} 
0

您可以檢查文件的末尾使用feofstdin上。

相關問題