我撰寫了一個小型提醒應用程式,它按照用戶的指定每隔幾秒鐘發出一次嗶聲:
#include <windows.h>
#include <stdio.h>
int main()
{
int interval;
printf("How often shall I remind you?\n");
printf("Every x seconds: ");
scanf("%d", &interval);
if (interval < 0 || interval > 300)
{
printf("Invalid interval. Try 0 < interval < 300.");
return 1;
}
int numofbeeps = 3600/interval;
printf("Good. I will beep every %d seconds (that makes %d times) over the next 60 minutes.\n", interval, numofbeeps);
for(int ctr=0 ; ctr < numofbeeps ; ctr )
{
Sleep(interval*1000);
Beep( 1000, 750 );
}
return 0;
}
有沒有辦法連續掃描用戶輸入(即使在sleep一段時間內),并在某個輸入時采取某種操作(例如,通過覆寫變數和一些使用來重新啟動提醒回圈goto)?
uj5u.com熱心網友回復:
行程可以在其中一個等待函式中指定控制臺輸入緩沖區句柄,以確定何時存在未讀控制臺輸入。當輸入緩沖區不為空時,會發出控制臺輸入緩沖區句柄的狀態信號。
DWORD wait = WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), interval*1000);
if (wait == WAIT_OBJECT_0)
// read input
else if (wait == WAIT_TIMEOUT)
// Beep?
else
// Handle error
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491592.html
