Eingabeschleife



  • Hi....

    Ich hab gerade echte Probleme mit ner Eingabeschleife:

    #include <iostream>
    #ínclude <string>
    #include <iomanip>
    
    using namespace std;
    
    int main()
    {
    string name[100];
    int Personalnummer[100];
    
    int no=0;
    
    do
    {
        ++no;
        cout <<"Name >";
        getline(cin,Name[no]);
    
        cout <<"Personalnummer >";
        cin >> Personalnummer[no];
    } while(Gut.size()!=0);
    
    return 0;
    }
    

    Die Schleife sollte so lange ausgeführt werden, bis der Benutzer die Eingabe beim "Namen" leer lässt.

    In der Bash sollte das dann etwa so aussehen:
    *
    Name > Herbert
    Personalnummer > 1022556
    Name > Walter
    Personalnummer > 34225
    Name> →Eingabe wird vom benutzer leer gelassen und die
    schleife wird unterbrochen.

    Währe toll wenn mir jemand helfen könnte........
    thx schon mal.....



  • Servus backgiggy!
    Abgesehen davon, dass sich dein Quellcode nicht kompilieren lassen wird, hier ein Beispiel, wie es gehen sollte: (hoffentlich) 🙂

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
            string name[100];
            string nr[100]; // Habe hier string genommen, kannst du aber problemlos uebertragen
            unsigned int l = 0;
            do
            {
                    cout << "\nName: ";
                    getline(cin, name[l]);
    
                    if(name[l].size() == 0)
                            break;
    
                    cout << "\nNr:   ";
                    getline(cin, nr[l]);
    
                    ++l; // erst hier erhoehen, da name[0] & nr[0] sonst leer bleibt.
            }while(l < 100);                
    
            return 0;                
    }
    

    Caipi



  • Super......

    Danke, echt super Forum hier.......



  • Nur so nebenbei, solltest Du dennoch die Personalnummer als int beibehalten wollen und das mit cin machen wollen :

    ...
          cin >> Nummer[no];
    	cin.clear();
    	cin.ignore( numeric_limits<streamsize>::max(), '\n');
    ...
    

    🙂


Anmelden zum Antworten