hilfe bei void xD



  • hey leute ich habe ein problem undzwar will ich mit void arbeiten... doch es klappt nicht so wie ich es mir vorgestellt habe... ich will das wenn man 1 drückt was anderes angezeigt wird als wenn man 2 drückt.... schaut euch das mal bitte an

    #include<iostream>
    #include<string>
    using namespace std;

    void land();
    void haus();

    int main()
    {
    string eingabe;

    cout<<"Gebe 1 oder 2 ein"<<endl;

    cin>>eingabe;

    if (eingabe == "1." || "1")
    {
    land();

    }

    if (eingabe =="2." || "2")
    {
    haus();
    }

    system ("PAUSE");
    return 0;
    }

    void land()
    {

    cout<<"Land\n";

    }

    void haus()
    {

    cout<<"Haus\n";

    }
    [code]



  • if (eingabe == "1." || eingabe == "1")
    

    Du musst Eingabe gegen beide Strings prüfen. Dein Ausdruck wird folgendermassen ausgewertet:

    if (eingabe == ("1." || "1") )
    

    was natürlich nicht das gewünschte Resultat liefert.



  • das geht nicht :S:S

    eiglt wolle ich nicht den original code eingeben aber mir bleibt nix anderes übrig... [quote]
    #include<iostream>
    #include<string>
    using namespace std;

    void land();
    void quiz ();

    void main()
    {
    string eingabe;

    cout<<"Hauptmenue\n"<<" \n";
    cout<<"Hey das ist ein Multifinktionsprogramm, programiert von Ibo... und jetzt tippe das Programm ein was du gerne benututen moechtest\n"<<endl;
    cout<<"1. Land Stadt Genaerator\n"<<"2. Kleines Quiz\n"<<"\n 1. oder 2. ? \n";
    cout<<"\nIch waehle das Programm: ";
    cin>>eingabe;

    if (eingabe == "1." || eingabe =="1")
    {
    land ();

    }

    if (eingabe =="2." || eingabe =="2")
    {
    quiz ();
    }

    system ("PAUSE");
    return 0;
    }

    void land()
    {

    string befehl = "\nGeben Sie ein beliebiges europäisches Land ein: ";
    string eingabe;
    string ist = " ist: ";
    string linie (40, '-');
    string gesamt = "Die Hauptstadt von ";

    cout<<"Land Stadt Genaerator\n";
    cout<<"\nFalls du wieder ins Hauptmenue willst, gebe einfach back ein"<<endl;
    cout << befehl;
    cin >> eingabe;

    if (eingabe == "back")
    {
    main ();
    }

    while (eingabe != "back")
    {

    if (eingabe == "Deutschland" || eingabe =="deutschland")
    {
    cout << linie << endl;

    cout << gesamt << eingabe << ist << "Berlin" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }

    if (eingabe == "Polen" || eingabe =="polen")
    {
    cout << linie << endl;

    cout << gesamt << eingabe << ist << "Warschau" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }

    if (eingabe == "Österreich" || eingabe =="österreich")
    {
    cout << linie << endl;

    cout << gesamt << eingabe << ist << "Wien" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }

    if (eingabe == "England" || eingabe =="england")
    {
    cout << linie << endl;

    cout << gesamt << eingabe << ist << "London" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }

    if (eingabe == "Frankreich" || eingabe =="frankreich")
    {
    cout << linie << endl;

    cout << gesamt << eingabe << ist << "Paris" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }

    if (eingabe == "Italien" || eingabe =="italien")
    {
    cout << linie << endl;

    cout << gesamt << eingabe << ist << "Rom" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }

    if (eingabe == "Spanien" || eingabe =="spanien")
    {
    cout << linie << endl;

    cout << gesamt << eingabe << ist << "Madrid" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }

    if (eingabe == "Griechenland" || eingabe =="griechenland")
    {
    cout << linie << endl;
    cout << gesamt << eingabe << ist << "Athen" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }
    }
    }

    void quiz ()
    {
    string eingabe;
    string linie (40, '-');

    cout<<"Das kleine Quiz\n";
    cout<<"\nFalls du wieder ins Hauptmenue willst, gebe einfach back ein\n";
    cout<<"Wer ist der beste und kluegste programmierer ueberhaubt?\n";
    cout<<"1.Asamoah Quabenea Oppong\n"<<"2.Ibooo\n"<<"3.Yebi\n"<<"\nIch habe die Auswahl zwischen Asa,Ibo oder Yebi und wähle: ";
    cin>> eingabe;

    while (eingabe != "back")
    {

    if (eingabe == "back")
    {
    main ();
    }

    if (eingabe =="Ibo" )
    cout<<"\nyeahh richtigg!!!! wer sonnst ausser Ibo xD\nDu hast gewonnen...du kommst etz automatisch ins Hauptmeue\n";
    main ();

    if (eingabe =="Asa")
    cout<<"bist du dumm? Wie kommst du auf Asa du opfaaaa.... versuchs nochmal"<<endl;
    cin>>eingabe;

    if (eingabe =="Yebi")
    cout<<"bist du dumm? Wie kommst du auf Yebi du opfaaaa.... versuchs nochmal"<<endl;
    cin>>eingabe;
    }

    }[code]

    egal ob ich 1 oder 2 eingebe das, 1 wird immer ausgeführt


  • Mod

    Das kann ich nicht nachvollziehen. Dein Programm springt bei der Eingabe von 1 zu einer anderen Funktion als bei der Eingabe von 2 - wie gewünscht. Hast du auch alles richtig neu kompiliert?

    Dann noch ein paar Anmerkungen: Dass dein Code sehr umständlich ist, muss ich dir wohl nicht verraten, du hast einfach noch nicht genug C++ gelernt. Du hast jedoch ein paar Fehler gemacht, die man dir am besten gleich am Anfang deines Lernprozesses austreiben sollte:

    (Ach ja: Benutze bitte die cpp Tags, dann sieht dein Code auch schöner aus)

    #include<iostream>
    #include<string>
    using namespace std;
    
    void land();
    void quiz ();
    
    int main()  // Main muss IMMER int zurückgeben
    {
    string eingabe;
    
    cout<<"Hauptmenue\n"<<" \n";
    cout<<"Hey das ist ein Multifinktionsprogramm, programiert von Ibo... und jetzt tippe das Programm ein was du gerne benututen moechtest\n"<<endl;
    cout<<"1. Land Stadt Genaerator\n"<<"2. Kleines Quiz\n"<<"\n 1. oder 2. ? \n";
    cout<<"\nIch waehle das Programm: ";
    cin>>eingabe;
    
    if (eingabe == "1." || eingabe =="1")
    {
    land ();
    
    }
    
    if (eingabe =="2." || eingabe =="2")
    {
    quiz ();
    }
    
    // system ("PAUSE"); system sollte man besser nicht verwenden, außerdem fehlt der cstdlib Header der dafür gebraucht wird. 
    // Man kann sich nicht darauf verlassen, dass die anderen Standardheader diesen einbinden, auch wenn dies bei dir anscheinend der Fall ist. 
    // Siehe die FAQ ür Alternativen um die Konsole offen zu halten
    return 0;
    }
    
    void land()
    {
    
    string befehl = "\nGeben Sie ein beliebiges europäisches Land ein: ";
    string eingabe;
    string ist = " ist: ";
    string linie (40, '-');
    string gesamt = "Die Hauptstadt von ";
    
    cout<<"Land Stadt Genaerator\n";
    cout<<"\nFalls du wieder ins Hauptmenue willst, gebe einfach back ein"<<endl;
    cout << befehl;
    cin >> eingabe;
    
    if (eingabe == "back")
    {
    main ();   // Das darf man nicht machen. main darf im normalen Programm nicht aufgerufen werden. Benutze return und eine Schleife in der main um zu erreichen was du hier versuchst. 
    }
    
    while (eingabe != "back")
    {
    
    if (eingabe == "Deutschland" || eingabe =="deutschland")
    {
    cout << linie << endl;
    
    cout << gesamt << eingabe << ist << "Berlin" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }
    
    if (eingabe == "Polen" || eingabe =="polen")
    {
    cout << linie << endl;
    
    cout << gesamt << eingabe << ist << "Warschau" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }
    
    if (eingabe == "Österreich" || eingabe =="österreich")
    {
    cout << linie << endl;
    
    cout << gesamt << eingabe << ist << "Wien" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }
    
    if (eingabe == "England" || eingabe =="england")
    {
    cout << linie << endl;
    
    cout << gesamt << eingabe << ist << "London" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }
    
    if (eingabe == "Frankreich" || eingabe =="frankreich")
    {
    cout << linie << endl;
    
    cout << gesamt << eingabe << ist << "Paris" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }
    
    if (eingabe == "Italien" || eingabe =="italien")
    {
    cout << linie << endl;
    
    cout << gesamt << eingabe << ist << "Rom" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }
    
    if (eingabe == "Spanien" || eingabe =="spanien")
    {
    cout << linie << endl;
    
    cout << gesamt << eingabe << ist << "Madrid" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }
    
    if (eingabe == "Griechenland" || eingabe =="griechenland")
    {
    cout << linie << endl;
    cout << gesamt << eingabe << ist << "Athen" << endl;
    cout << linie << endl;
    cout << befehl;
    cin >> eingabe;
    }
    }
    }
    
    void quiz ()
    {
    string eingabe;
    string linie (40, '-');
    
    cout<<"Das kleine Quiz\n";
    cout<<"\nFalls du wieder ins Hauptmenue willst, gebe einfach back ein\n";
    cout<<"Wer ist der beste und kluegste programmierer ueberhaubt?\n";
    cout<<"1.Asamoah Quabenea Oppong\n"<<"2.Ibooo\n"<<"3.Yebi\n"<<"\nIch habe die Auswahl zwischen Asa,Ibo oder Yebi und wähle: ";
    cin>> eingabe;
    
    while (eingabe != "back")
    {
    
    if (eingabe == "back")
    {
    main ();  // siehe oben
    }
    
    if (eingabe =="Ibo" )
    cout<<"\nyeahh richtigg!!!! wer sonnst ausser Ibo xD\nDu hast gewonnen...du kommst etz automatisch ins Hauptmeue\n";
    main ();  // Siehe oben
    
    if (eingabe =="Asa")
    cout<<"bist du dumm? Wie kommst du auf Asa du opfaaaa.... versuchs nochmal"<<endl;
    cin>>eingabe;
    
    if (eingabe =="Yebi")
    cout<<"bist du dumm? Wie kommst du auf Yebi du opfaaaa.... versuchs nochmal"<<endl;
    cin>>eingabe;
    }
    
    }
    


  • und wie soll ich es deiner meinung nach machen ohne main ();???^^



  • und kann mir jemend sagen wie ich das hinbekomme das die vorhärigen schriften alle glöscht werden sobald ein neuer Befehl ausgeführt wurde.... das verwirrt nämlich ziehmlich wenn so viel da steht xD



  • Iboshido schrieb:

    und kann mir jemend sagen wie ich das hinbekomme das die vorhärigen schriften alle glöscht werden sobald ein neuer Befehl ausgeführt wurde.... das verwirrt nämlich ziehmlich wenn so viel da steht xD

    die vorhäääärigen chrivten geen mid standard c++ nicht weg

    Iboshidon schrieb:

    und wie soll ich es deiner meinung nach machen ohne main ();???^^

    hat er doch geschrieben!!!^^



  • ansonsten, wenn es trotzdem umbedingt weg soll:

    system("cls");
    



Anmelden zum Antworten