Schließen?
-
Es steht zwar in den faqs aber irgendwie scheine ich das nicht zu kapieren wie verhindere ich das automatische beenden der console z.b bei diesem simplen programm aus dem turtorial?
#include <iostream>
#include <string>
using namespace std;void main()
{
string name;
cout<<"Wie heissen Sie? ";
cin>>name;
cout<<"Hallo, "<<name<<'!'<<endl;Danke
-
#include <iostream> #include <string> #include <conio.h> using namespace std; void main() { string name; cout<<"Wie heissen Sie? "; cin>>name; cout<<"Hallo, "<<name<<'!'<<endl; getch(); //Programm wartet, bis eine Taste gedrückt wird } //Klammer zu!!!
-
danke
-
Hallo,
da es sich hier nicht um Standard-C++ handelt, verschiebe ich das mal ins Konsolenforum.
-
@Darko: Der hier gezeigt Weg (eben nicht genau der aus der FAQ) kann aber manches Mal zu Problemen führen und dein Programm wird trotzdem geschlossen - da ja getch() ein Zeichen aus dem Puffer liest in welchem schon etwas stehen könnte.
Du musst ihn vorher noch löschen im Falle von getch() musst du noch die <windows.h> einbinden und ein FlushConsoleInputBuffer (GetStdHandle(STD_INPUT_HANDLE)); davorsetzen.
MfG SideWinder
-
also in der Headerdate von einem Freud steht das so:
#define TPL fflush(stdin)
Und der benutzt das dann so:
TPL;
Und er hat nirgends die windows.h drinne!P.S.: Machs doch einfach mit getchar(); aus der stdio.h.
[ Dieser Beitrag wurde am 20.03.2003 um 18:45 Uhr von quizzmaster editiert. ]
-
fflush(stdin)
das erzeugt undefiniertes verhaltes
-
fflush (stdin) erzeugt ein undefiniertes Verhalten - dein Programm kann dann auch genauso gut die Festplatte löschen anstatt den Puffer zu leeren.
Desweiteren bringt getchar() hier nichts, da - obwohl nur ein Zeichen verwertet wird, vom User nicht nur mehrere eingeben werden können sondern es wird auch noch auf das nächste Enter gewartet - in diesem Falle also völlig sinnlos.
Also bitte vorher erkundigen - steht eigentlich alles in der FAQ.
MfG SideWinder
-
OK, das mit getchar() ist verständlich.
Aber warum kann fflush(stdin) meine Festplatte löschen?P.S.: Funktioniert dein weg auch unter reinem DOS?
[ Dieser Beitrag wurde am 21.03.2003 um 08:46 Uhr von quizzmaster editiert. ]
-
Aber warum kann fflush(stdin) meine Festplatte löschen?
das war nurn übertriebenes beispiel.
-
Natürlich löscht es jetzt so gut wie niemanden die Festplatte (wahrscheinlich gar keinem) aber undefiniertes Verhalten heißt trotzdem "mach was du willst, eventl. lösch den stdin-puffer aber wenns dir keinen spaß macht lösch die festplatte" ;).
MfG SideWinder