這裏正確的值是我的代碼:無法獲取箭頭鍵
#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。這是一個錯誤嗎?你能更清楚地知道你真正想做什麼嗎? –