Programm schließt sich automatisch

07/28/2016 14:22 Bombasticx3#1
Hey yo Coder,

Ich habe folgendes Problem:

Code:
//Holt sich den Input aus der Console
int getMenueInput() {
		cout << "Eingabe: ";
		int input;
		std::cin >> input;
		return input;
	
}

//Führt je nach Eingabe etwas aus
void reactInput(int input) {
	//Öffnet Link im Browser
	if (input == 7) {
		ShellExecute(NULL, TEXT("Open"), TEXT("www.google.de"), NULL, NULL, 1);
	}
	getMenueInput();
}
Am Anfang des Programms schreibe ich was auf die Konsole.
mit getMenueInput() gebe ich was in die Konsole ein und werte diese Eingabe in reactInput aus.
Beim ersten Mal Input auslesen alles easy.
Beim zweiten mal jedoch, wenn ich was auf der Konsole eingebe schmiert mir alles ohne Grund ab.
Vielleicht habt ihr ja ne Idee.

MfG Bombasticx3
07/28/2016 14:25 monlight451#2
schreib am Ende std::cin.get(); somit bleibt das Fenster erhalten.
07/28/2016 14:33 florian0#3
Dein Code hat meines Erachtens auch einen logischen Fehler...

getMenueInput() gibt dir die eingelesene Zahl. Dieses wird mittels reactInput ausgewertet. Dein Code in der main (oder wo auch immer) sollte also irgendwie so aussiehen.

Code:
int main(void) {
    
    int input;
    input = getMenueInput();
    
    reactInput(input);

    // ...

    return 0;
}
Wieso rufst du in reactInput noch einmal getMenueInput() auf? Das ist da doch irgendwie fehl am Platz oder?
07/28/2016 14:34 Bombasticx3#4
Quote:
Originally Posted by monlight451 View Post
schreib am Ende std::cin.get(); somit bleibt das Fenster erhalten.
Da getInputMenue in meiner Main und danach reactInput aufgerufen wird und in reactInput wieder getInput, passiert nach dem 2. getInput nix mehr.
Hab jetzt einfach in meine Main eine while gemacht. Kommt aufs gleiche hinaus. Hatte meinen Fehler gefunden, bevor du geantwortet hast. Danke trotzdem.



Quote:
Originally Posted by florian0 View Post
Dein Code hat meines Erachtens auch einen logischen Fehler...

getMenueInput() gibt dir die eingelesene Zahl. Dieses wird mittels reactInput ausgewertet. Dein Code in der main (oder wo auch immer) sollte also irgendwie so aussiehen.

Code:
int main(void) {
    
    int input;
    input = getMenueInput();
    
    reactInput(input);

    // ...

    return 0;
}
Wieso rufst du in reactInput noch einmal getMenueInput() auf? Das ist da doch irgendwie fehl am Platz oder?
Code:
{
	Menue();
	while (mainbool == true) {
	int input = getMenueInput();
	reactInput(input);
}
Ja so hab ich dass dan gelöst.
07/28/2016 23:16 Delinquenz#5
Quote:
Ja so hab ich dass dan gelöst.
Du schließt die Scope deiner while-Schleife nicht einmal..
07/29/2016 11:42 Bombasticx3#6
Quote:
Originally Posted by Delinquenz View Post
Du schließt die Scope deiner while-Schleife nicht einmal..
Ja ich hab nicht meinen kompletten Code kopiert. Geht schon alles. Wusste irgendwem fällt das auf :D