簡體   English   中英

使用 while 循環驗證字符串輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM