Tastaturabfrage C++

Altivec

Aktives Mitglied
Thread Starter
Dabei seit
29.05.2006
Beiträge
1.257
Reaktionspunkte
57
Hi!
Ich suche nach einer Möglichkeit, in einem Konsolenprogramm die Tastatur abzufragen (also nicht mit cin >> sondern ohne Return-Taste).
Was ich dazu gefunden habe, ist:

- conio.h gibt's nicht für den Mac
- curses.h hat eine Funktion getch()

Leider funktioniert das mit dem getch() nicht. Bei der Ausführung des Programms bekomme ich nur einen signal6 (SIGABRT) und ZeroLink: unknown symbol '_stdscr'.

Kennt Ihr einen anderen Weg, um eine simple Tastaturabfrage zu realisieren?

Altivec
 
GetKeys (), aber das kann (je nach sicherheitseinstellung) nicht funktionieren.

Alex
 
getch() aus curses.h muss funktionieren.
Du musst natürlich:

  • gegen die curses-Bibliothek linken, d.h. g++ deinprogramm.cpp -o deinprogramm -lcurses
  • initscr(); zur Initialisierung von curses aufrufen ;)
 
Mr. Kernighan und Mr. Ritchie haben das vor 30 Jahren mal mit getchar() aus stdio.h in C gemacht!
 
below:
Besten Dank für den Hinweis! Habe jetzt zumindest einen Weg, um überhaupt Tasten abfragen zu können:
KeyMap theKeys;
::GetKeys(theKeys);
if( theKeys[1] & 0xVIERBYTE ) {...}

Auf der Suche nach der KeyTranslate Funktion bin ich dann bei iGetKeys gelandet. Aber dauch da bekomme ich diese merkwürdigen Fehler zur Laufzeit, wenn ich die Funktionen wie TestForAsciiKeyDown oder TestForKeyDown benutze. ZeroLink habe ich in den Einstellungen übrigens abgeschaltet.

DeineMudda:
hab ich gemacht, auch den Aufruf von initscr(). Aber dieses kleine Programm:

Code:
#include <iostream>
#include <curses.h>

int main (int argc, char * const argv[])
{
	initscr();
	char c = getch();
	std::cout << "Hallo Welt!";

    return 0;
}

liefert immer die Fehler:

ZeroLink: unknown symbol '_stdscr'
Curses has exited due to signal 6 (SIGABRT).

Mr. Kernighan und Mr. Ritchie haben das vor 30 Jahren mal mit getchar() aus stdio.h in C gemacht!

Dann muß jemand die Funktion umgeschrieben haben ;)
 
Hab den Code ausprobiert, die dort gezeigte Funktion getch verhält sich leider genauso wie getchar aus stdio.
Ich werde wohl die Variante mit der Toolbox-Funktion weiterverfolgen.
Danke nochmal an alle!
 
Zurück
Oben Unten