作者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