我正在項目中提示用戶輸入郵政編碼。我需要驗證它是一個五位數字(我不需要驗證它是一個實際的郵政編碼)。驗證用戶輸入是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個字符,每個字符都是數字?
把它作爲一個字符串,並檢查其大小()? –
只需檢查輸入中是否有五個字符,並且每個字符都是數字。 –
另外,除非你需要額外的東西,否則不要使用'std :: endl'。 ''\ n''結束一行。 –