私は、後で使用するために保存したいキーボードからの入力を(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
出力を表示するには、出力をフラッシュする必要があります。そうでなければ、印刷時間は実装定義です。 –
[できません](http://coliru.stacked-crooked.com/a/9c803cd4281ed0c9)[再現](http://ideone.com/7XV0UM)[this](http://imgur.com/AvAyaUB)[行動](http://imgur.com/2BjuFCc)。 –