cin 的奇怪行为
Strange behavior of cin
我一直在练习一些 C++。这是一个简单的程序,但是我在玩终端时发现在 'input' 中输入密码时有一个奇怪的行为。看来 'Give me the password' 消息之前的缓冲区 'triggers'。我怎样才能避免这种奇怪的行为?
我正在为 C/C++ 开发人员使用 Eclipse IDE
版本:Neon.3 发布 (4.6.3)
构建 ID:20170314-1500
提前致谢
#include <iostream>
using namespace std;
/* DO WHILE EXAMPLE*/
int main() {
const string password = "car";
string input;
do {
cout << "Give me the password\n";
cin >> input;
if (input != password) {
cout << "Incorrect Password\n";
}
} while (input != password);
cout << "Correct Password";
return 0;
}
这是正确的行为
这是不正确的行为
这真的很奇怪。除了编译器为您的 OS 或其他东西生成错误代码之外,似乎没有其他原因。如果可能的话,我建议获得 Visual Studio 2017。
写入 cout 后尝试等待。
我一直在练习一些 C++。这是一个简单的程序,但是我在玩终端时发现在 'input' 中输入密码时有一个奇怪的行为。看来 'Give me the password' 消息之前的缓冲区 'triggers'。我怎样才能避免这种奇怪的行为?
我正在为 C/C++ 开发人员使用 Eclipse IDE
版本:Neon.3 发布 (4.6.3) 构建 ID:20170314-1500
提前致谢
#include <iostream>
using namespace std;
/* DO WHILE EXAMPLE*/
int main() {
const string password = "car";
string input;
do {
cout << "Give me the password\n";
cin >> input;
if (input != password) {
cout << "Incorrect Password\n";
}
} while (input != password);
cout << "Correct Password";
return 0;
}
这真的很奇怪。除了编译器为您的 OS 或其他东西生成错误代码之外,似乎没有其他原因。如果可能的话,我建议获得 Visual Studio 2017。
写入 cout 后尝试等待。