2017-07-07 82 views
-1

我一直在練習一點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; 
} 

Correct Behavior這是正確行爲

Incorrect Behavior這是不正確的行爲

+0

你使用什麼編譯器?它看起來像cin/cout不是'tie()'d http://en.cppreference.com/w/cpp/io/basic_ios/tie – sehe

回答

0

這真的很奇怪。除了編譯器爲您的操作系統或其他東西產生錯誤代碼之外,似乎沒有其他原因。如果可能的話,我建議獲得Visual Studio 2017。

嘗試等待寫入cout後。

+0

甚至有一個提示OP使用Windows? – iehrlich

+0

不,但這就是我爲他所得到的一切。大聲笑 – user8210143

+0

謝謝。我剛剛報告了錯誤 – ed9uardo0