C語言使用getch()讀取方向鍵

初衷:

在解決N皇後問題時需要使用方向鍵實現佈局切換,於是就在網上查找資料,感覺自己收獲不小,就把自己總結的一些知識點給記錄下來。

總結:

1.getch()讀取字符需要一次。

2.getch()讀取方向鍵或功能鍵需要兩次。

(第一次的返回值為0或者224(方向鍵)
getch函數在讀取一個功能鍵或者箭頭(方向)鍵盤時,函數會返回兩次,第一次調用返回0或者0xE0,第二次調用返回實際的鍵值。

72,80,75,77返回值分別是↑↓←→。

代碼演示:

while (1){   //無限循環
        //使用getch()讀取方向鍵,讀取方向鍵需要讀取兩次
          if (ch1=getch()){
             ch2=getch();//第一次調用getch(),返回值224
             switch (ch2){//第二次調用getch()
             case 75: {  //←的ascll
                 if(current-1>=0){
                    current--;
                 }else{
                     current = tol-1;
                 }
                    system("cls\n");
                    cout<<"請輸入皇後的數量:"<<n<<endl;
                    cout<<"一共有"<<tol<<"種佈局"<<endl<<endl;
                    show(current);
                break;
             }
             case 77: {
                 if(current+1<=tol-1){
                    current++;
                 }else{
                     current = 0;
                 }
                    system("cls\n");
                    cout<<"請輸入皇後的數量:"<<n<<endl;
                    cout<<"一共有"<<tol<<"種佈局"<<endl<<endl;
                    show(current);

                 break;
             }
             default:cout<<"輸入錯誤!"<<endl;break;

             }
          }

到此這篇關於C語言使用getch()讀取方向鍵的文章就介紹到這瞭,更多相關C語言讀取方向鍵內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: