Warum kann ich Strg + S nicht in C lesen?

8

Ich habe dieses Programm in C , das die Eingabe so liest:

%Vor%

Ich kann alle Ctrl + Char möglichen Sequenzen lesen, mit Ausnahme von Ctrl + C Programm - das ist in Ordnung, und Strg + S , das einfache ist nicht fangen. Aber ich wollte Strg + S machen, um die Speicherfunktion in meinem Programm zu sein; Wie könnte ich das tun? Ist es außerdem möglich, Alt + Char -Zeichen zu lesen? Weil es es als ein reguläres Zeichen liest, wird beispielsweise Alt + A mit denselben Codes wie A gelesen     

Luan Nico 15.11.2012, 10:38
quelle

1 Antwort

6

Ihr Problem ist, dass die Eingabe wahrscheinlich vom Terminal-Emulator aufgefressen wird.

Zum Beispiel ist Alt+<Whatever> oft für Menüverknüpfungen reserviert (z. B. Alt+F öffnet File Menü). Übereinstimmende Zeichen werden oft hervorgehoben, wenn Sie Alt ( F get in File unterstrichen) halten.

Ctrl+S ist reserviert für < Stops all output on screen (XOFF) > (wieder tut dies Ihr Terminal-Emulator).

Wie für die Verwendung von Alt+<...> als Verknüpfungen in Ihrer Befehlszeilenanwendung. Soweit es mich betrifft, hat Alt keinen Einfluss auf das empfangene Zeichen, es setzt nur Flags, auf die in der Konsole nur schwer zugegriffen werden kann. Selbst in der GUI-Anwendung (in Windows) ist es ziemlich schwierig und Sie müssen Funktionen wie GetAsyncState() um zu prüfen, ob alt gedrückt wurde.

    
Vyktor 15.11.2012, 10:48
quelle

Tags und Links