getch() kein standard c++?
-
Hi,
ich hab mich gestern mal kurz mit Linuxprogrammierung beschäftigt. Naja und da ein Hallo Welt Programm auch ein getch() haben sollte, hab ich da die <conio> includiert und getch() benutzt.
Allerdings geht das nicht. Es scheint wohl keine conio.h zu geben. Aber wenn diese getch() zum Standard gehören (würde?) dann müsste es doch auch unter Linux funzen. Oder liege ich da richtig?
Nicht das ihr mich jetzt falsch versteht. das ist keine Frage zur Linuxprogrammierung (für's Linuxforum) sondern ne Frage ob getch() + conio.h zum standard c++ gehört.
gruß chris
-
Nein, getch() ist kein Standard. Es gehört zu der Conio-Library, die es nur unter Windows gibt.
Unter Linux nimmst du dafür curses.
-
wie sähe der standard befehl dafür aus der auf beiden BS's läuft? Hab ehrlich gesagt keinen bock unterschiedlichen Befehle zu lernen. Oder geht das nicht anders?
-
Ich weiß jetzt nicht was getch() macht, aber das müsste der ISO C++ Ersatz sein:
char ch; std::cin >> ch;
-
conio.h gehört zum Borland Compiler. Unter DOS und Windows bringen aber auch viele andere Compiler solche Header mit, die aber zum größten Teil inkompatibel sind. Deswegen sollte man auf conio.h verzichten.
Direkt kann man getch durch keine Funktion aus der C++ Standard Library ersetzen.
-
getch() wartet auf eine Tastatureingabe und gibt das eingegebene Zeichen zurück. Allerdings brauch man dafür nicht auf Enter drücken, so wie bei cin. Das ist eigentlich der Vorteil.
-
Und man hat kein ECHO.
-
Chris++ schrieb:
Naja und da ein Hallo Welt Programm auch ein getch() haben sollte
Warum sollte das jedes Programm haben? Wenn man direkt aus der Konsole startet schließt sich das Fenster nicht sofort
. Viele IDEs haben da eine kleine Hilfe (z.B. bei VS oder mingwStudio Strg+F5 statt F5, führt in Konsole aus).