[英]validate string input with while loop
我想驗證一個將由用戶輸入的字符串,該字符串遵循兩個條件。 條件是字符串是否為空或字符串是否有空格字符。 我當前的問題是我可以驗證字符串,但它需要我再次按 Enter 鍵來重申我的問題“2。輸入產品名稱:”。
while (true) {
cout << "2. Enter Product Name: ";
if(getline(cin, newNode->product_name)) {
if ((newNode->product_name).empty() || (newNode->product_name) == " ") {
cout << "Please enter a valid product name!\n";
cin.clear();
cin.ignore(numeric_limits<std::streamsize>::max(), '\n');
}
else {
break;
}
}
}
在if
語句中if(getline(cin, newNode->product_name)) {
意味着讀取一行成功。 因此,您不需要線條
cin.clear();
cin.ignore(numeric_limits<std::streamsize>::max(), '\n');
他們將要求忽略額外的行,因此請刪除該行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.