我正在学习C ++,并且试图创建一个while循环供用户输入其名称。输入他们的名字后,我正在使用while循环检查输入的名字是否为真实的为此使用字符串。如果用户没有输入名称,则说他们输入了一个值,然后while循环将提示用户再次输入名称。同样,如果名称输入正确,则再次在底部打印名称以与用户确认。
#include <iostream>
#include <string>
using namespace std;
// g++ -std=c++14 -Wall main.cc -o main
int main() {
string name;
cout << "Please Enter Your Name: " << endl;
while (name.compare ("Done") != 0) {
getline(cin,name);
if (name == " ") {
cin.clear();
cout << "\nPlease Enter Your Name: " << endl;
} else break;
}
return 0;
cout << "Is Your Name" << name << "?" << endl;
// Ask Verification Here
}
答案 0 :(得分:1)
答案 1 :(得分:1)
我对代码更清晰的建议:
移动所有用于检查名称对其功能是否有效的逻辑。
bool isValidName(std::string const& name)
{
// Do all the validation tests and return true if name is valid.
// Return false otherwise.
}
将while
循环更改为:
while ( getline(cin,name) )
{
if ( name == "Done" )
{
break;
}
if ( isValidName(name) )
{
break;
}
// Ask for name again.
cout << "\nPlease Enter Your Name: " << endl;
}