[分享] 標準輸入流讀取不用按enter也不會等待輸入
這個程式如果
你按A他會一直出現A
你按B他會一直出現B
隨便按停止
它不會等待輸入也不用按enter
程式碼
---------------------------------------------------------------------
#include <stdio.h>
#include <windows.h>
#include <string.h>
int main(){
HANDLE handle = GetStdHandle(STD_INPUT_HANDLE);
DWORD events;
int key=0;
INPUT_RECORD buffer;
PeekConsoleInput( handle, &buffer, 1, &events );
while(1){
PeekConsoleInput(handle, &buffer, 1, &events);
if(events > 0) {
ReadConsoleInput(handle, &buffer, 1, &events);
if (buffer.Event.KeyEvent.wVirtualKeyCode=='A'){
key=1;
}
else if (buffer.Event.KeyEvent.wVirtualKeyCode=='B'){
key=2;
}
else{
key=3;
}
}
if (key==1){
printf("A");
}
else if (key==2){
printf("B");
}
else if (key==0){
}
else {
return 0;
}
}
}
------------------------------------------------------
參考資料:
http://stackoverflow.com/questions/421860/
c-c-capture-characters-from-
standard-input-without-waiting-for-enter-to-be-pre
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.135.96.181
→
02/18 18:47, , 1F
02/18 18:47, 1F
→
02/18 18:57, , 2F
02/18 18:57, 2F
→
02/18 19:43, , 3F
02/18 19:43, 3F
→
02/18 20:05, , 4F
02/18 20:05, 4F
→
02/18 20:06, , 5F
02/18 20:06, 5F
→
02/18 20:07, , 6F
02/18 20:07, 6F
→
02/18 20:25, , 7F
02/18 20:25, 7F
→
02/18 20:33, , 8F
02/18 20:33, 8F
→
02/18 20:52, , 9F
02/18 20:52, 9F
→
02/18 20:53, , 10F
02/18 20:53, 10F
→
02/18 20:57, , 11F
02/18 20:57, 11F
→
02/19 16:27, , 12F
02/19 16:27, 12F
→
02/19 16:28, , 13F
02/19 16:28, 13F
推
02/19 16:28, , 14F
02/19 16:28, 14F
推
02/20 01:37, , 15F
02/20 01:37, 15F
→
02/20 01:37, , 16F
02/20 01:37, 16F