簡體   English   中英

用戶輸入的C ++字符串驗證

[英]c++ string validation for user input

我要做的只是提示用戶輸入是或否的答案,並對其進行驗證以確保他們沒有鍵入任何愚蠢的內容。

我認為這將是一個相對簡單的任務,但是在我自己多次失敗嘗試之后,並在網上四處看看,似乎每個人對於最佳方法都持不同意見。

偽代碼

  1. 問問題

  2. 用戶提示

  3. 檢查輸入=是或輸入=否

  4. 如果是,請執行方案a

  5. 否,情況b

  6. 如果無效,則返回第2點

main.cpp中

std::cout << "Do you have a user name? ("yes", "no"): ";
std::cin >> choice;
user.validation(choice);

if (choice == "yes")
{
// some code
}

if (choice == "no")
{
// some code
}

User.cpp

void User::validation(std::string choice)
{
    while (choice != "yes" && choice != "no")
    {       
        std::cout << "Error: Please enter 'yes' or 'no': ";
        std::cin >> choice;
        if (choice == "yes" && choice == "no")
        {
            break;
        }

    }
}

直到他們最終鍵入是或否,它會跳過,如果是,則跳過,如果不是,則直接進入程序的下一部分

我希望能夠在整個程序中多次調用user.validation來驗證其他是/否問題

嘗試改變這個

if (choice == "yes" && choice == "no")

為了這

if (choice == "yes" || choice == "no")

選擇不能同時是“是”和“否”。

您沒有從validation()返回正確的choice

void User::validation(std::string &choice) // <-- insert a & here

C / C ++對於字符串不起作用,因為==運算符沒有執行您認為對std :: string對象和char *數組所做的事情。 請改用std :: string compare()方法。 參考: http : //www.cplusplus.com/reference/string/string/compare/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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