【发布时间】:2016-11-25 17:33:42
【问题描述】:
全部
我对编程很陌生,目前正在使用 sublime 文本编辑器自学 C++。我遇到了一个问题,即通过 cin 输入内容后代码无法继续。例如,
#include <iostream>
using namespace std;
int main() {
string password = "password";
cout << "Enter your password: " << flush;
string input;
cin >> input;
if(input == password) {
cout << "Password accepted." << endl;
} else {
cout << "Access denied." << endl;
}
return 0;
}
在我输入后,它不会显示“密码接受”或“访问被拒绝”等任何内容。有谁知道如何解决这个问题并使其工作?谢谢。
【问题讨论】:
-
你是从终端运行那个程序的吗?
-
我可以告诉你代码在 c++ shell (cpp.sh/7g26n) 上编译。但是请不要像那样比较字符串,唯一可能起作用的原因是字符串池。使用 if (input.compare(password) == 0) 代替。
-
@JulianDeclercq 在 C++ 中使用
operator==函数重载对std::string进行字符串比较非常好。您似乎在考虑 Java。 -
输入“密码”后,您是否按回车键?这就是导致终端程序实际将输入“发送”到进程的原因。
-
最后,这与您使用的文本编辑器有什么关系? Sublime Text 不是Integrated Development Environment (IDE)。如果您将其配置为实际构建和运行您的程序,它仍然不是运行您的程序的 Sublime Text,它会创建一个带有外壳的终端窗口来为您执行此操作。
标签: c++