[Osx] Entspricht Windows getch () für Mac / Linux Abstürze



Answers

Sie haben keine ausgestellt

#include <stdio.h>

oder

#include <curses.h>

oder ähnliche Linie. Sind Sie sicher, dass Sie eine Verknüpfung zu einer Bibliothek herstellen, die getch() ?

Question

Ich benutze getch() und meine App stürzt sofort ab. Einschließlich, wenn Sie tun:

int main()
{
    getch();
}

Ich kann die Verbindung nicht finden, aber angeblich ist das Problem, dass es Pufferung oder etwas Seltsames entlang dieser Linien ausschalten muss, und ich will immer noch cout , um mit plattformübergreifendem Code zu arbeiten.

Mir wurde gesagt, std::cin.get() , aber ich möchte die App beenden, wenn eine Taste gedrückt wird, nicht wenn der Benutzer einen Buchstaben oder eine Zahl eingegeben und dann die Eingabetaste drücken, um zu beenden.

Gibt es eine Funktion dafür? Der Code muss unter Mac (meinem Betriebssystem) und Windows funktionieren.

Das Verknüpfen / Kompilieren ist kein Problem . Ich <curses.h> und verlinken mit -lcurses in XCode, während Windows <conio.h> .




Die Funktion getch ist auf Unix-ähnlichen Systemen nicht verfügbar, aber Sie können sie durch Compiler mit der system durch Konsolenbefehle ersetzen.

Verwendung:

In Windows können Sie das system("pause");

In Unix-ähnlichen Systemen (wie OSX) können Sie das system("read -n1 -p ' ' key");

Hinweis: Das system ist in <stdlib.h> deklariert.




Links