Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
01.01.13, 15:57
|
#1
|
Erfahrener Newbie
Registriert seit: Dec 2010
Beiträge: 162
Bedankt: 18
|
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
__________________
Blödsinnige Beiträge, bitte einfach löschen!
|
|
|
01.01.13, 17:12
|
#2
|
Banned
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
|
getchar() sollte es tun.
|
|
|
01.01.13, 19:20
|
#3
|
Newbie
Registriert seit: Jun 2010
Beiträge: 56
Bedankt: 10
|
ich würde es mit den
preprozessor anweisungen regeln:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
|
|
|
01.01.13, 20:39
|
#4
|
Erfahrener Newbie
Registriert seit: Dec 2010
Beiträge: 162
Bedankt: 18
|
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.
__________________
Blödsinnige Beiträge, bitte einfach löschen!
|
|
|
01.01.13, 21:21
|
#5
|
Newbie
Registriert seit: Jun 2010
Beiträge: 56
Bedankt: 10
|
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
|
|
|
01.01.13, 21:23
|
#6
|
Mitglied
Registriert seit: Oct 2010
Beiträge: 296
Bedankt: 151
|
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)
# if defined(__SVR4) || defined(__svr4__)
/* Solaris */
# else
/* SunOS */
# endif
#endif
dann müsstest du halt ne fallunterscheidung für verschiedene betribssysteme einbauen
edit: oh da war einer schneller
|
|
|
01.01.13, 21:30
|
#7
|
Erfahrener Newbie
Registriert seit: Dec 2010
Beiträge: 162
Bedankt: 18
|
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?
__________________
Blödsinnige Beiträge, bitte einfach löschen!
|
|
|
01.01.13, 21:31
|
#8
|
Newbie
Registriert seit: Jun 2010
Beiträge: 56
Bedankt: 10
|
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
|
|
|
01.01.13, 21:31
|
#9
|
Banned
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
|
Zitat:
Zitat von HagenTronje
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.
|
Schreib eine Helper-Methode und Du hast eine oder zwei Zeilen!
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
|
|
|
02.01.13, 01:06
|
#10
|
Erfahrener Newbie
Registriert seit: Dec 2010
Beiträge: 162
Bedankt: 18
|
Aber was wenn mein Programm nur in der Konsole läuft und bewertet wird? :P
__________________
Blödsinnige Beiträge, bitte einfach löschen!
|
|
|
02.01.13, 15:08
|
#11
|
bla
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
|
Dann soll dein Bewerter dein Programm in der Konsole starten.
|
|
|
03.01.13, 23:21
|
#12
|
Erfahrener Newbie
Registriert seit: Dec 2010
Beiträge: 162
Bedankt: 18
|
es braucht aber trotzdem ne Pause bevor sichs beendet!
__________________
Blödsinnige Beiträge, bitte einfach löschen!
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:22 Uhr.
().
|