这里正确的值是我的代码:无法获取箭头键
#include <iostream>
#include <conio.h>
#include <vector>
#include <string>
using namespace std;
int startMenu(vector<string> arr, int pos){
/* Keyboard
up : char(72)
down : char(80)
left : char(75)
right : char(77)
*/
char userChar;
refresh:
system("cls");
for (int i = 0; i < arr.size(); i++){
if (i == pos){
cout << "> " << arr[i] << endl;
}
else{
cout << " " << arr[i] << endl;
}
}
userChar = _getch();
switch (userChar){
case 0:
case 0xE0:
break;
case 72:
case 75:
--pos;
break;
case 80:
case 77:
++pos;
break;
case 13:
return pos;
default:
break;
}
cout << pos << endl;
if (pos >= arr.size()){
pos = 0;
}
if (pos == -1){
pos = arr.size() - 1;
cout << "arr.size() - 1 = " << arr.size() - 1 << endl;
}
goto refresh;
}
int main(){
vector<string> arr;
arr.push_back("Jamie");
arr.push_back("Alex");
startMenu(arr, 0);
}
当pos
是0,我按上/左键,pos
应更改为1(因为arr.size() - 1
),然而, pos
被读为0(因为箭头键返回'特殊'值)。
当pos为0时,如何在按左/上方向键后读取-1
而不是0
?
首先你说过,当你按下/离开时,pos应该是1,然后最后你实际上是-1。这是一个错误吗?你能更清楚地知道你真正想做什么吗? –