Tastaturabfrage C++

Diskutiere mit über: Tastaturabfrage C++ im Mac OS X Entwickler, Programmierer Forum

  1. Altivec

    Altivec Thread Starter MacUser Mitglied

    Beiträge:
    1.268
    Zustimmungen:
    56
    Registriert seit:
    29.05.2006
    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
     
  2. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    Registriert seit:
    15.03.2004
    GetKeys (), aber das kann (je nach sicherheitseinstellung) nicht funktionieren.

    Alex
     
  3. DeineMudda

    DeineMudda unregistriert

    Beiträge:
    859
    Zustimmungen:
    72
    Registriert seit:
    12.05.2005
    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 ;)
     
  4. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.029
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    Mr. Kernighan und Mr. Ritchie haben das vor 30 Jahren mal mit getchar() aus stdio.h in C gemacht!
     
  5. Altivec

    Altivec Thread Starter MacUser Mitglied

    Beiträge:
    1.268
    Zustimmungen:
    56
    Registriert seit:
    29.05.2006
    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).

    Dann muß jemand die Funktion umgeschrieben haben ;)
     
  6. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.029
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    :eek: tatsächlich :Pfeif:

    wie das mit curses gehen soll steht z.B. hier:


    http://www.pronix.de/pronix-783.html
     
  7. Altivec

    Altivec Thread Starter MacUser Mitglied

    Beiträge:
    1.268
    Zustimmungen:
    56
    Registriert seit:
    29.05.2006
    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!
     
Die Seite wird geladen...
Ähnliche Themen - Tastaturabfrage C++ Forum Datum
Suche einfache IDE für C Mac OS X Entwickler, Programmierer 13.08.2016
C++ Programm von Windows zu Mac? Mac OS X Entwickler, Programmierer 05.05.2016
Buchtip für C++ Mac OS X Entwickler, Programmierer 13.10.2015
C: Array in Funktionsprototyp Mac OS X Entwickler, Programmierer 26.08.2015
C - Problem mit "fflush(stdin); wahl = getchar();" unter OSX? Mac OS X Entwickler, Programmierer 13.06.2015

Diese Seite empfehlen

Benutzerdefinierte Suche