为什么程序在启动时终止而不输出任何内容



我做了一个C++用户输入,它可以检测何时没有输入值,但它在启动时终止程序,而不输出任何内容。为什么?

#include <iostream>
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) 

是错误的。不是比较falseentered,而是将false分配给entered

相反,你需要做:

while(entered == false) 

如果打开警告,例如使用-Wall,编译器会告诉您可能在这里犯了错误。

我可以看到你的主函数以int开始,但我看不到return 0,请记住,如果你的函数不是void,那么它必须返回一些东西。

相关内容

最新更新