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

Why does the program terminate on startup without outputting anything?

我创建了一个 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,那么它就是 必须 return 东西