C++ 如何使用_getch()的键盘功能,就像使用getline()一样?
我的问题是,当我的用户在终端中推动制表时,我想做一件特殊的事情。我的第一个代码解释如下:C++ 如何使用_getch()的键盘功能,就像使用getline()一样?,c++,getline,getch,C++,Getline,Getch,我的问题是,当我的用户在终端中推动制表时,我想做一件特殊的事情。我的第一个代码解释如下: char buffer[100]; while (true) { std::cin.getline(buffer, 100); // do IMMEDIATELY something if 'tabulation' was used ? } 所以我问自己如何检查每个字符?我试过使用\u getch() while (true) { c = _getch(); if (c ==
char buffer[100];
while (true)
{
std::cin.getline(buffer, 100); // do IMMEDIATELY something if 'tabulation' was used ?
}
所以我问自己如何检查每个字符?我试过使用\u getch()强>
while (true)
{
c = _getch();
if (c == '\t')
// do something special
else
std::cout << (char)c;
}
while(true)
{
c=_getch();
如果(c=='\t')
//做点特别的事
其他的
std::cout假设您指的是来自Microsoft C运行时库的函数:
\u getch和\u getwch函数从
控制台,而不回显字符。这些功能都不能使用
用于读取CTRL+C。当读取功能键或箭头键时,每个
函数必须调用两次;第一次调用返回0或0xE0,并且
第二个调用返回实际的键代码
因此,如果\u getch()
返回0或0xE0(224),则必须再次调用该函数以查看按下了哪个特定键
至少在我的机器上,这些“扩展”字符代码如下(十进制):
- 0.59=F1
- 0 60=F2
- 0.61=F3
- 0.62=F4
- 0.63=F5
- 0 64=F6
- 0.65=F7
- 0.66=F8
- 0.67=F9
- 0 68=F10
- 224 71=家
- 224 72=↑ (向上箭头)
- 224 73=翻页
- 224 75=← (左箭头)
- 22477=→ (右箭头)
- 224 79=结束
- 224 80=↓ (向下箭头)
- 224 81=向下翻页
- 224 82=插入
- 224 83=删除
- 224133=F11
- 224134=F12
至于如何处理这些代码,请查看和相关的控制台API函数。< /P>不,标准C++没有。这是OS和终端的具体信息。为什么不使用STDIN或SCANF?你读到了解释值“代码> > GETCH < /Cord>可以返回的文档的一部分吗?你知道你可能需要调用<代码>e> 两次获得一个按键代码?@Gugg这也没用。@CaptainObvlious我读过,但即使我能检测到那些按键代码,我能用它做什么?例如,我能检测到箭头键代码,但我剩下的解决方案只是模拟光标移动。或者,你想恢复“本机光标移动”功能。如果我不太清楚,我很抱歉