簡體   English   中英

C ++在Windows中更改規范模式

[英]C++ change canonical mode in windows

在找到一堆線程之后,我在Windows上找不到任何線程,只有Linux,Ubuntu等。

簡而言之,我試圖找出的是如何關閉規范模式,以便控制台中的輸入可以立即輸入而無需按Enter。

較長的版本。 這就是我現在要做的事情:當PGM暫停(基於文本的游戲)時,要求用戶輸入箭頭鍵以在2D陣列上移動玩家。 但是cin.get()cin.ignore()和我嘗試過的其他一些操作都需要按Enter才能繼續。

臭名昭著的system("pause>nul"); 確實有效,但是正如我在其他地方所讀到的那樣,這是非常糟糕的做法。

這是代碼的一部分。 cout語句僅用於測試目的:

//While loop
if(GetAsyncKeyState(VK_UP)){
        cout << "up" << endl;
}
else if(GetAsyncKeyState(VK_DOWN)){
        cout << "down" << endl;
}
else if(GetAsyncKeyState(VK_LEFT)){
        cout << "left" << endl;
}
else if(GetAsyncKeyState(VK_RIGHT)){
        cout << "right" << endl;
}
else{
    break;}

//pauze and check for arrow key input here

您也可以在Windows上使用getch

我知道它是C,並且您收到了已棄用的警告,但是它起作用了...

該代碼循環運行,直到您按Enter:

檢查按箭頭鍵時會發生什么...

#include <stdio.h>
#include<conio.h>
int main ()
{
  int c;
  do {
    c=getch();
    printf("%d\n",c);
  } while (c != 13);
  return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM