Ich nehme mal an, dass du mit C erst angefangen hast und nun bei deinem ersten Programm
folgendes Problem auftritt:
Das schwarze Konsolenfenster geht so schnell zu, so dass du kaum sehen kannst, was dein
Programm macht.
Vielleicht sieht dein erstes Programm in etwa so aus:
|
Source code
|
1
2
3
4
5
6
|
#include <stdio.h>
int main (int argc, char *argv[]) {
printf("Mein erstes Programm!");
return 0;
}
|
Der Compiler sollte es dir ohne Probleme in ausführbaren Programmcode übersetzen. Wenn du das
Programm jetzt selbst ausführst oder diesen Job die IDE wie DevC++ machen lässt, dann werden
genau die Zeilen (korrekt) abgearbeitet.
Mit return 0 sagt das Programm dem Betriebssystem (z.B. Windows oder Linux), dass es
keinen Fehler bei der Ausführung gab. Wurde der Lauf des Programms beendet, gibt es
keinen Grund, warum das Fenster noch länger geöffnet bleiben sollte.
Aber das Problem lässt sich wie folgt aus der Welt schaffen:
|
Source code
|
1
2
3
4
5
6
7
|
#include <stdio.h>
int main (int argc, char *argv[]) {
printf("Mein erstes Programm!");
getchar(); // Wartet auf Eingabe eines Zeichens
return 0;
}
|
Manche schreiben da an Stelle von getchar() nämlich system("pause"). Und das sollte man
tunlichst vermeiden, obwohl es funktioniert!!!
system("pause") ist ein sogenannter System-Call, also der Aufruf einer Funktion, die das
Betriebssystem bereitstellt. Und da Betriebssysteme zum Teil sehr unterschiedlich gestrickt
sind, passiert dann das:
Was bei Betriebssystem A funktionierte, geht bei Betriebssystem B gar nicht!
Ein Beispiel wäre folgender System-Call system("cls"); Dieser bewirkt unter Windows, dass
Textausgaben auf der Konsole entfernt werden. Möchte man nun dasselbe bei einem
linuxbasiertem Betriebssystem machen, müsste man system("clear") schreiben.
Edit Rolf: einen Fehler korrigiert