为什么程序在启动时终止而不输出任何内容?
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)
错了。您不是比较 false
和 entered
,而是将 false
分配给 entered
。
相反,您需要这样做:
while(entered == false)
如果您打开警告,例如 -Wall
,编译器会告诉您您可能在这里犯了错误。
我可以看到您的主要功能以 int
开头,但我看不到 return 0
,请记住,如果您的功能不是 void
,那么它就是 必须 return 东西
我创建了一个 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
,那么它就是 必须 return 东西