Falsche Reihenfloge!?!?! (gelößt)



  • Hallo also erst mal bin ich noch ein zimlicher Anfänger^^ Ich habe mir ein paar grundlagen angeeignet und wollte nun mal meine if-else kenntnisse ausprobieren und habe ein kleines textprogramm gemacht:

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
    	string haarfarbe, haarfarbe1, augenfarbe, augenfarbe1, essen, essen1;
    	int alter, alter1;	
    
    	cout << "Partnertest!!!\n";
    	cout << "Nun soll der Partner seine Ergebnisse eingeben: \n";
    	cout << "Welche Haarfarbe hast du: \n";
    	cin >> haarfarbe;
    	cout << "Welche Augenfarbe hast du: \n";
    	cin >> augenfarbe;
    	cout << "Was ist dein Lieblingsessen: \n";
    	cin >> essen;
    	cout << "Wie alt bist du: \n",
    	cin >> alter;
    	cout << " \n";
    
    	cout << "Ok das wars nun ist der Partner dran der getestet werden soll\n";
    	cout << "Nun beantworte die folgenden Fragen und du weist wie gut du deinen Partner kennst\n";
    	cout << "Welche Haarfarbe hat dein Partner?\n";
    	cin >> haarfarbe1;
    	cout << "Welche Augenfarbe hat dein Partner?\n";
    	cin >> augenfarbe1;
    	cout << "Was ist das Lieblingsessen deines Partners?\n";
    	cin >> essen1;
    	cout << "Wie alt ist dein Partner?\n";
    	cin >> alter1;
    
    	if ( haarfarbe1 != haarfarbe) {
    		cout << "Das war falsch weiter mit der nächsten Frage\n";
    	}
    	else {
    		cout << "Das war gut weiter mit der nächsten Frage\n";
    	}
    	if ( augenfarbe1 != augenfarbe) {
    		cout << "Das war falsch weiter mit der nächsten Frage\n";
    	}
    	else {
    		cout << "Das war gut weiter mit der nächsten Frage\n";
    	}
    	if ( essen1 != essen) {
    		cout << "Das war falsch weiter mit der nächsten Frage\n";
    	}
    	else {
    		cout << "Das war gut weiter mit der nächsten Frage\n";
    	}
    	if ( alter1 != alter) {
    		cout << "Das war falsch weiter mit der nächsten Frage\n";
    	}
    	else {
    		cout << "Das war gut weiter mit der nächsten Frage\n";
    	}
    
    	system("pause");
    	return 0;
    }
    

    Es gibt aber ein Problem die if-else antworten werden erst ganz am schluss ausgegeben und nicht unter den antworten-.- Finde den Fehler einfach nicht könnt ihr mir helfen 😕

    Schonmal im Voraus Danke 👍

    ps: Noch ne Frage gibt es die Möglichkeit das wenn der erste Partner seine Eingaben gemacht hat und der zweite dran ist, das dann der obere textteil ausgeblendet wird sonst kann man ja abkucken!!



  • Das wird so ausgegeben, da du durch deinen Quellcode den Programmfluss so dirigierst. Wenn hinter der Antwort diese Ausgabe kommen soll, dann musst du eben den entsprechenden Funktionsblock an die passende Stelle verschieben:

    cout << "Welche Haarfarbe hat dein Partner?: \n";
        cin >> haarfarbe1;
        if ( haarfarbe1 != haarfarbe) {
            cout << "Das war falsch weiter mit der nächsten Frage\n";
        }
    // usw.
    


  • ok danke^^ ist ja auch irgendwie logisch xD

    nun gibts nur noch eine frage kann man den oberen teil irgendwie ausblenden sobald alle eingaben gemacht wurden


  • Mod

    markus2181 schrieb:

    ok danke^^ ist ja auch irgendwie logisch xD

    nun gibts nur noch eine frage kann man den oberen teil irgendwie ausblenden sobald alle eingaben gemacht wurden

    Wenn du weißt, dass du auf einer Konsole bist, kannst du die Konsole fragen den Text zu löschen. Auf den meisten Konsolen kann man dies mit einem system("cls"); erreichen. Ist natürlich nicht universell portabel, geht aber auf ziemlich vielen Konsolen.

    Bedenke aber, dass das cout-Objekt an sich ganz neutral mit der Standardausgabe verknüpft ist. Und die kann theoretisch wer weiß wo hin führen, auch wenn dies häufig eine Textkonsole ist. Aber es kann gerne auch ein Drucker oder eine Datei oder sonst etwas sein. Und da machen Begriffe wie "ausblenden" natürlich wenig Sinn. entsprechend wird cls da natürlich nicht funktionieren weil der Drucker kein Tippex hat 😃 .



  • funktioniert einwandfrei danke 🙂



  • SeppJ schrieb:

    Auf den meisten Konsolen kann man dies mit einem system("cls"); erreichen. Ist natürlich nicht universell portabel, geht aber auf ziemlich vielen Konsolen.

    Echt? AFAIK geht das nur auf Windows. Das was viele (außer Windows) können ist "clear".
    Für Windows ist es wohl besser auf die WinAPI zurück zu greifen ("WinAPI clear Console" sollte ausreichend Links liefern), Unter allen anderen Systemen sollte es mit Escape Sequenzen gehen.
    Oder halt gleich eine Curses-Library verwenden 😛



  • Falsche Reihenfloge!?!?! (gelößt)

    http://de.wikipedia.org/wiki/Löss 😃


Anmelden zum Antworten