我試圖讓(在C++中)從我想存儲以備後用的鍵盤輸入一些輸入。這只是我工作的代碼的簡化版本,但它再現相同的行爲:爲什麼getline(...)在屏幕上打印?
#include <iostream>
int main(int argc, char * * argv)
{
std::string line;
std::cout << "> ";
std::getline(std::cin, line);
return 0;
}
getline
正確讀取從標準輸入,但輸入後得到立即打印上新的生產線。此外,>
字符後面的空格在讀取我的輸入時被忽略,但在後面打印。例如:
>hi
> hi
爲什麼會發生這種情況?我怎樣才能避免它?
我在Windows 10上使用CLion 2016.1(這發生在CLion的控制檯上)。
你使用什麼編譯器?你是否正在運行編譯器的代碼? – NathanOliver
您可能需要刷新輸出以確保它在您希望顯示時出現,否則打印時間是實施定義的。 –
[Can not](http://coliru.stacked-crooked.com/a/9c803cd4281ed0c9)[reproduce](http://ideone.com/7XV0UM)[this](http://imgur.com/AvAyaUB)[行爲(http://imgur.com/2BjuFCc)。 –