作者wintercobra (wintercobra)
看板EE_DSnP
標題[問題] 組合鍵
時間Sun Jan 18 11:04:23 2009
為了使用上下左右鍵等等的功能
我先寫了一個小程式看ASCII碼
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
while (true) {
unsigned char ch = getch();
cout << int(ch) << endl;
}
}
但是,上下左右之類的,或是Alt和Ctrl組合鍵
出現的ASCII都是兩碼(是為了代表超過char上限的字元吧)
這樣我要怎麼判斷輸入的是什麼呢?
也就是說,一次判斷兩碼,要怎麼判斷?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.235
1F:推 timrau:根據第一碼判斷需不需要再getch()一次以取得第二碼 01/18 11:23
2F:→ wintercobra:謝啦 01/18 12:42
3F:→ wintercobra:還有另一個問題想問:定義一個KEYIN形態的物件keyin 01/18 12:44
4F:→ wintercobra:然後有個KEYIN的member function typeIn() 01/18 12:44
5F:→ wintercobra:編譯的時候只有這行不過,錯誤訊息是 01/18 12:45
6F:→ wintercobra:request for member 'typeIn' in 'keyin', which is 01/18 12:45
7F:→ wintercobra:of non-class type 'KEYIN ()()' 這是什麼意思啊? 01/18 12:46
8F:→ wintercobra:喔忘了說這行長什麼樣,是keyin.typeIn(); 01/18 12:47
9F:→ wintercobra:好像解決了,似乎是因為我定義時寫KEYIN keyin() 01/18 12:50
10F:→ wintercobra:雖然不傳參數給constructor,但是也不能加()的樣子 01/18 12:51
11F:→ wintercobra:只能KEYIN keyin; 01/18 12:51
12F:→ wintercobra:不然compiler會以為我在定義一個函數keyin(); 01/18 14:40
13F:推 cfc0719:該如何只判斷第一碼呢? 01/18 15:59
14F:推 michael0728n:測試第一個ASCII code是多少 01/18 16:33
15F:→ michael0728n:我記得很多功能鍵的第一個ASCII都是224 01/18 16:35
16F:→ michael0728n:所以是224的話就要再getch()一次 01/18 16:36
17F:推 cfc0719:為什麼我測試出來的是-32 224+32=256 這不是巧合吧 01/18 17:28
18F:推 stimim:unsigned char 和 char 的差別吧? 01/18 17:43