int main() {
bool entered = false;
while(entered = false) {
std::cout << "Please enter thy name: ";
std::string name;
std::getline(std::cin, name);
std::cout << "Hello, " + name;
int length = name.length();
if(length > 0) {
std::cout << "Hello, " + name;
entered = true;
} else {
std::cout << "Thou did not enter thy name";
}
}
我已经在Java做了一个类似的程序,有类似的格式,这一个工作
此循环条件:
while(entered = false)
是错的。 不是比较false
和entered
,而是将false
分配给entered
。
相反,您需要做:
while(entered == false)
如果打开警告,例如使用-wall
,编译器将告诉您这里可能出错。