![]() |
C: OS unabhängige Pause
Wenn das Programm abgelaufen ist, möchte man ja, das es sich nicht gleich schließt, sondern der User Zeit hat, sich die Ergebnisse anzusehen.
Unter Windows geht das ja schön mit system("Pause"); unter Linux funktioniert das nicht. Was wäre die Systemunabhängige alternative? getch() geht ja auch nichts, weils conio.h nicht gibt angeblich heißt das in Linux curses.h, aber wenn ich die einbinde, kann ichs ja wieder nicht für Windows compelieren. Ich möchte die Selbe C Datei, ohne Anderungen, für Windows und Linux compelieren können. Frohes neues Jahr HagenTronje |
getchar() sollte es tun.
|
ich würde es mit den
preprozessor anweisungen regeln: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] |
Für getchar müsste ich zuerst den Tastaturpuffer leeren. wirkt doch Ziemlich unprofessionell wenn ich nur für die Pause dann 4 Zeilen brauche, oder?
Von der verlinkten Seite versteh ich nur Bahnhof. |
ganz einfach:
du wolltest dein Programm tauglich für windows und linxu machen. falls du eine stelle im Code hast, dass sich unterscheidet, schreibst du sowas: #ifdef __linux__ - code für - linux #endif #ifdef _win32 - code für - windows #endif das sind einfach anweisungen für den Compiler. Funktioniert natürlich auch mit Includes, falls eine z.b. nur bei linux existiert. Hoffe du hast es jetzt ein bisschen besser verstanden :) |
du kannst überprüfen ob varaiblen definiert sind, und damit dann auf das betriebssystem schließen. so wie es da in nem bespiel steht:
Code:
#if defined(sun) || defined(__sun) edit: oh da war einer schneller |
ich glaube da bin ich mit ner Schleife zum Buffer löschen und getchar() besser dran :O
Wie macht ihr das denn bei euren Programmen? |
doppelt gemoppelt hält ja bekanntlich besser :P
übrigens, ist "scanf()" nicht noch ne option für dein problem? das gibt es bei beiden OS |
Zitat:
Unprofessionell wäre es in eine so triviale Sache viel Zeit zu investieren, wenn man eine saubere Lösung in weniger als fünf Zeilen schreiben kann. Alles andere wäre Overhead... Und welches "professionelle" Programm kümmert sich um die Konsolenausgabe beim Schliessen des Programms? Ich denke keines davon wird damit werben, dass die Pause plattformunabhängig und mit einer Zeile Code geschrieben wurde :D |
Aber was wenn mein Programm nur in der Konsole läuft und bewertet wird? :P
|
Dann soll dein Bewerter dein Programm in der Konsole starten.
|
es braucht aber trotzdem ne Pause bevor sichs beendet!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.