Cin.peek() wird nach der Ausführung von stty raw blockiertC++

Programme in C++. Entwicklerforum
Guest
 Cin.peek() wird nach der Ausführung von stty raw blockiert

Post by Guest »

Lassen Sie uns das Thema einschränken, um zu bestimmen, ob eine ESC- oder Auf-Taste von Standard-C++ gedrückt wird.
Nach dem Ausführen von stty raw in der Konsole und dem anschließenden Kombinieren von getchar() und cin.peek() in C++ sollte es in Ordnung sein, diese einfache Aufgabe abzuschließen.
Ich habe festgestellt, dass cin.peek() dies tun wird blockiert werden, wenn Sie nur die ESC-Taste drücken. Aber Peek ist Peek, es sollte NICHT blockiert werden.
Hier ist der Code, um dieses Problem zu reproduzieren. Es kann die Aufwärts-Taste, aber die ESC-Taste
erkennen

Code: Select all

#include 
#include 

using namespace std;

// ESC: 1b, UP: 1b 5b 41
int esc_or_up() {
auto esc_key = 0x1b, bracket_key = 0x5B, a_key=0x41;

auto buf = cin.rdbuf();
int ch = buf->sbumpc();
if (ch != esc_key)
return ch;

auto debug = [&]() {
static int count = 0;
cout

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post