我一直在练习一点C++。这是一个简单的程序,但是我已经玩过终端,并且在'输入'中输入密码时我注意到了一种奇怪的行为。看起来缓冲区在'给我密码'消息之前'触发'。我怎么能避免这种奇怪的行为?cin的奇怪行为
我使用的Eclipse IDE的C/C++开发人员
版本: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;
}
这是正确行为
这是不正确的行为
你使用什么编译器?它看起来像cin/cout不是'tie()'d http://en.cppreference.com/w/cpp/io/basic_ios/tie – sehe