[Gelöst]Strings in ein Array einlesen



  • jo ma wieder ne frage, also ich hae folgendes code:

    #include<iostream>
    
    using namespace std;
    int main()
    {
        char namen[5];
    
        char figur;
        cout<<"Tragen sie nun die Namen ein\n"<<endl;
        int i;
        for(i=1;i=5;++i)
        {
                cin>>figur;
                namen[i]=figur;
    
        } 
        cout<<"Ihre namen\n"<<namen[i];
    system("Pause");
    
    }
    

    so und dieser soll eigentlich 5 Namen in ein Array einlesen nur irgendwie macht der das nicht so wie ich es will kann mir einer helfen??



  • Das heißt "i<5" 😉 (erstens ist "i=5" eine Zuweisung und kein Vergleich und zweitens ist "i==5" schon vor dem Programmstart false, so daß die Schleife sofort wieder verlassen wird).

    Edit: Und außerdem glaube ich kaum, daß die verwendeten Namen nur aus je EINEM Zeichen bestehen 😉



  • Hallo

    Verwende soch einfach std::string. Das lässt sich besser handhaben.

    chrische



  • ja ok stimmt danke erstma für die antwort, und wie kann ich es jetzt gestalten das ich beliebig lange namen eingeben kann, und diese dann eingelesen werden ?



  • Hallo

    Siehe mein erster Post.

    chrische



  • #include<iostream>
    #include<string>
    
    using namespace std;
    int main()
    {
        string namen[5];
    
        char figur;
        cout<<"Tragen sie nun die Namen ein\n"<<endl;
        int i;
        for(i=0;i<5;++i)
        {
                namen[i]=figur;
                cin>> figur;
    
        } 
        cout<<"Ihre namen\n"<<namen[i];
    system("Pause");
    
    }
    

    ich habe es jetzt mal so probiert, aber da stürzt das programm ab, weiß nur net warum?



  • Hallo

    Hast du mal den Debugger benutzt?

    chrische



  • hmm.. ne ich weiß net was das ist, bzw was es machen soll?
    sicherlich fehler entlarven, wegen bug oder?



  • Firefighter schrieb:

    #include<iostream>
    #include<string>
    
    using namespace std;
    int main()
    {
        string namen[5];
    
        char figur;
        cout<<"Tragen sie nun die Namen ein\n"<<endl;
        int i;
        for(i=0;i<5;++i)
        {
                namen[i]=figur;
                cin>> figur;
                
        } 
        cout<<"Ihre namen\n"<<namen[i];
    system("Pause");
        
    }
    

    ich habe es jetzt mal so probiert, aber da stürzt das programm ab, weiß nur net warum?

    Du weist hier etwas zu, ohne es zu initialisieren. warum verwendest du überhaupt noch char. Lass das weg und arbeite nur mit string.

    chrische



  • Erstens sollte 'figur' auch ein String sein. Zweitens solltest du mal die Reihenfolge der Anweisungen in der for()-Schleife überdenken. Und drittens ist i am Ende der Schleife auf 5 und du gibst einen nicht existierenden String aus.



  • Hallo

    #include<iostream>
    #include<string>
    
    using namespace std;
    int main()
    {
        std::string namen[5]
    
        cout<<"Tragen sie nun die Namen ein\n"<<endl;
        for(int i=0;i<5;++i)
             cin>>namen[i];      
        for(int i=0; i<5; ++i
            cout<<"Ihre namen\n"<<namen[i];
    system("Pause");
    
    }
    

    chrische



  • ok jetzt gehts danke;)


Anmelden zum Antworten