Überlauf verhindern



  • Hallo,

    Weiss jemand, wie ich die Usereingaben kontrollieren kann, sodass wenn jemand die vorgegebene Anzahl überschreitet zB ne MessageBox erscheint und das Programm abbricht?

    Mal als Beispiel:

    int main()
    {
        char name[10];
        cout << "Geben Sie ihren Namen ein: ";
        cin.getline(name,10);
        cout << '\n';
        cout << "Hallo " << name << "...";
        getchar();
        return 0;
    }
    

    Wenn der Anwender mehr als 10 Zeichen eingibt, schmiert das Prog ab..
    Wie kann ich das verhindern?



  • Hi,

    dafür gibt es strings, ein sozusagen dynamisches Array an chars 😉 Somit musst du dich nicht mehr auf die Menge der eingegebenen Buchstaben beschränken. Ich würde dir folgendes vorschlagen:

    int main ()
    {
      string name;
      cout << "Geben Sie ihren Namen ein: ";
      cin>>name; 
    
      /*Wenn der Name aus mehreren Wörtern bestehen könnte, dann so:
        getline (cin,name);
      */
    
        cout << '\n';
        cout << "Hallo " << name << "...";
        getchar();
        return 0;
    }
    

    Ich hoffe, es hilft dir weiter 😉
    Mfg mikey.



  • Danke für die schnelle Antwort 👍


Anmelden zum Antworten