我做了一个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)
是错误的。不是比较false
和entered
,而是将false
分配给entered
。
相反,你需要做:
while(entered == false)
如果打开警告,例如使用-Wall
,编译器会告诉您可能在这里犯了错误。
我可以看到你的主函数以int
开始,但我看不到return 0
,请记住,如果你的函数不是void
,那么它必须返回一些东西。