郵便番号を入力するプロンプトが表示されるプロジェクトで作業しています。私はそれが5桁の数字であることを確認する必要があります(私はそれが実際の郵便番号であることを確認する必要はありません)。ここでユーザー入力が5桁の数字であることを確認
は、私のコードの一部です。
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));
郵便番号がゼロで始まっていない限りこれが正常に動作します。そうであれば、検証はうまくいかず、入力文字列が整数に変換されると、最初のゼロは決して変数に保存されません。データベースに保存するとき
は、私は文字列として郵便番号を残すべきか?もしそうなら、正確に5文字があり、各文字が数字であることをどのように確認できますか?
文字列として取り、サイズ()を確認しますか? –
入力に5文字あり、各文字が数字であることを確認してください。 –
また、あなたが余分なものを必要としない限り、 'std :: endl'も使用しないでください。 '' \ n ''は行を終わらせます。 –