000
18.03.2004, 19:15 Uhr
Pablo
Supertux (Operator)
|
Wenn man unter Windows Konsolanwendungen schreibt, führt man sie in den meisten Fällen per Doppelklick. Die Folge ist, dass das Fenster automatisch verschwindet.
Ursache Wenn ein Programm die letzte Zeile erreicht und beendet, wird dessen Fenster vom Betriebsystem (in diesem Fall Windows) automatisch gelöscht, d.h. das Fenster verschwindet.
Das gleiche passiert mit unseren Konsoleanwendungen, wenn sie die return Anweisung der main Funktion erreichen, ist das Programm beendet und das Fenster verschwindet. Es gibt zum Glück verschiedene Lösungen zu diesem Problem.
Lösung 1 (ANSI C)
C++: |
#include <stdio.h> void warte_auf_taste() { printf("\n\nENTER drücken, um fortzufahren."); getchar(); }
int main() { printf("Hello, World\n"); warte_auf_taste(); return 0; }
|
Lösung 2 (ANSI C++)
C++: |
#include <iostream> #include <cstdio> void warte_auf_taste() { std::cout << std::endl << std::endl << "ENTER drücken, um fortzufahren."; getchar(); }
int main() { std::cout << "Hello, World" << std::endl; warte_auf_taste(); return 0; }
|
Es kann passieren, dass es nicht funktioniert. Das kann passieren, wenn im Puffer stdin noch Zeichen enthalten sind. Zum Beispiel:
C++: |
#include <stdio.h> void warte_auf_taste() { printf("\n\nENTER drücken, um fortzufahren."); getchar(); }
int main() { char x[10]; printf("Hello, World\n"); scanf("%s", x); warte_auf_taste(); return 0; }
|
Eine Lösung dafür ist die Verwendung von einem weiterm getchar() oder weitere getchar(), die nötig sind.
C++: |
#include <stdio.h> void warte_auf_taste() { printf("\n\nENTER drücken, um fortzufahren."); getchar(); getchar(); }
int main() { char x[10]; printf("Hello, World\n"); scanf("%s", x); warte_auf_taste(); return 0; }
|
Lösung 3 (DOS) Die dritte Lösung ist sich mit der DOS-Shell anzufreunden, auch wenn DOS nicht zu freundlich zu dir ist.
Geh auf Start-->Run (oder Ausführen auf DE): und gibst cmd ein.
Mit cd bewegst du ich zum Verzeichnis des Programmes. Nehmen wie an, das Programm ist in C: \Probe. Nach der Eingabe von cmd steht.
C++: |
C:\Documents and Settings\Username\Desktop> cd\ C:\> cd Probe C:\Probe> cd bin // meistens steht in das bin oder debug Verzeichnis, egal C:\Probe\bin> probe // vorausgesetzt, dass probe der Name der Ausführbaredatei ist
|
-- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 03.10.2005 um 20:51 Uhr von Pablo editiert. |