Ich arbeite an einem Projekt, bei dem der Benutzer aufgefordert wird, eine Postleitzahl einzugeben. Ich muss überprüfen, dass es eine fünfstellige Nummer ist (ich muss nicht überprüfen, dass es eine tatsächliche Postleitzahl ist).Überprüfen Sie, dass die Benutzereingabe eine 5-stellige Nummer ist
Hier ist ein Teil meines Codes.
string userInput;
cout << "Zip Code> ";
getline(cin, userInput, '\n');
while (stoi(userInput)<10000 || stoi(userInput) > 99999){
cout << endl << endl << "You must enter a valid zip code. Please try again." << endl;
cout << "Zip Code>" << endl;
getline(cin, userInput, '\n');
}
PropertyRec.setZipCode(stoi(userInput));
Dies funktioniert gut, es sei denn, die Postleitzahl beginnt mit einer Null. Wenn dies der Fall ist, ist die Validierung nicht gut und der ursprüngliche Nullwert wird nie in der Variablen gespeichert, sobald die Eingabezeichenfolge in eine Ganzzahl konvertiert wurde.
Sollte ich die Postleitzahl beim Speichern in der Datenbank als String belassen? Wenn ja, wie kann ich überprüfen, dass es genau 5 Zeichen gibt und jedes Zeichen numerisch ist?
nehmen Sie es als eine Zeichenfolge und überprüfen Sie ihre Größe()? –
Überprüfen Sie, ob die Eingabe fünf Zeichen enthält und jedes Zeichen eine Ziffer ist. –
Verwenden Sie nicht 'std :: endl', es sei denn, Sie benötigen das zusätzliche Zeug, das es tut. '\ n'' beendet eine Zeile. –