nicht schließen
-
Bassmaster schrieb:
Schreib es einfach so dann geht es nich mehr zu
#include <windows.h> // kann raus #include <cstdlib.h> // kann auch raus! #include <iostream> using namespace std; int main() { cout << "Text"; system("PAUSE"); return 0; // fehlt noch^^ }
Dass sich die Konsole schließt is beabsichtigt, das kann man beheben, indem man einmal:
system("PAUSE");
an das Ende schreibt... Damit macht die Konsole eine Pause, bis man eine beliebige Taste drückt...
oder
cin.get();
ans Ende schreibt, damit wartet er auch auf eine beliebige Taste...
edit:
Also nochmal der komplette Code:#include <iostream> using namespace std; int main() { cout << "Text"<<endl; // <<endl; oder \n, damit die nächste Nachricht nicht direkt dran steht... cout<<"Drücken Sie eine beliebige Taste..."<<endl; cin.get(); return 0; }
-
Bassmaster schrieb:
Schreib es einfach so dann geht es nich mehr zu
...
besser nicht - system() gehört zu den Funktionen, die du nur in Notfällen verwenden solltest (d.h. nur, wenn du "intern" keine Alternative zu dem system()-Aufruf hast).
-
Nur zur Info das
return 0;
ist optional und besser finde ich sowieso EXIT_SUCCESS statt der 0 zu verwenden.
-
also erstens vielen dank euch allen, 2 fragen bleiben noch offen:
1. gibt es eine möglichkeit es über einen bestimmten knopf schließen zu lassen, z. B. ESC statt ENTER
2. gibt es eine möglichkeit dass es sich GAR NICHT schließt? ^^
-
Ich kenne nur
cin.get() und system("PAUSE");
was würdest du denn nehmen CStoll oder was wäre das beste ?
-
f1r3 schrieb:
1. gibt es eine möglichkeit es über einen bestimmten knopf schließen zu lassen, z. B. ESC statt ENTER
Mit ANSI C++ nicht - aber jenseits des Ansi-Standards haben die Betriebssysteme Alternativmöglichkeiten (ich verweise nochmal auf den Beitrag "Automatisches Schließen verhindern" in der Konsolen-FAQ)
2. gibt es eine möglichkeit dass es sich GAR NICHT schließt? ^^
Eine Endlosschleife - aber einen Programmabbruch über Task-Manager (oder Netzschalter) kannst du damit auch nicht verhindern (gegen solche Maßnahmen hast du keinerlei Schutzmaßnahmen).
Edit @Bassmaster: Ich würde die erste Variante nehmen.
-
Naja, Start --> Ausführen --> cmd und von da aus öffnen, dann schließt die Konsole auch nicht!
-
Entweder wie daLord es sagte über cmd öffnen oder, wenn du Microsoft Visual C++ benutzt, einfach mal Strg+F5 (Starten ohne Debuggen) drücken. Da hält der schon automatisch am Ende an. Bei Codeblocks gibts die Option imho auch.
Gruß
Don06
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
@1:
man kann das ganz einfach mit einer schleife realisieren und zwar so:#include <conio.h> #include <iostream> #define ESC 27 using namespace std; void main () { int close; /* Hier steht dein Programmcode */ do{ fflush ( stdin ); // Den tastaturbuffer löschen close = _getch (); if ( close == 0xE0 ) // Wenn eine Taste wie zB esc oder pfeiltaste gedrückt wird, close = _getch (); // Liefert _getch () 0xE0 zurück, dann muss man die Funktion // erneut aufrufen }while ( close != ESC ); // Damit bleibt die konsole so lange offen, bis esc gedrückt wird }
-
Bevor du solche fragwürdigen Tips gibst, lern C - "void main()" kann man eventuell noch durchgehen lassen, obwohl's nicht durch den Standard abgedeckt wird, aber "fflush(stdin);" ist UNDEFINIERT.