C++ 在使用cin读取输入之前冲洗cout。。为什么?

C++ 在使用cin读取输入之前冲洗cout。。为什么?,c++,C++,为什么在cin开始阅读之前必须冲洗cout?它们不是不同的缓冲区吗?我可以将输入读取到缓冲区,同时将其放在输出缓冲区(刷新之前)。。2个不同的缓冲区。我在这里感到困惑。典型的例子是: std::cout << "Enter your name: "; std::string name; std::cin >> name; std::cout>name; 您确实希望在输入之前看到提示,这就是为什么这两个流绑定在一起的原因 它不需要冲洗。默认情况下,流将绑定在一起,

为什么在cin开始阅读之前必须冲洗cout?它们不是不同的缓冲区吗?我可以将输入读取到缓冲区,同时将其放在输出缓冲区(刷新之前)。。2个不同的缓冲区。我在这里感到困惑。

典型的例子是:

 std::cout << "Enter your name: ";
 std::string name;
 std::cin >> name;
std::cout>name;

您确实希望在输入之前看到提示,这就是为什么这两个流绑定在一起的原因

它不需要冲洗。默认情况下,流将
绑定在一起,以便在执行以下操作时:

cout << "Enter your name:";
cin >> name;
cout>name;
提示出现在输入开始之前-这只是一个方便的功能。但是,您可以解开它们:

cin.tie( static_cast<ostream*>(0) );
cin.tie(静态铸造(0));

在对cin执行输入之前,不必刷新以下命令。

如果我想保留“输入您的姓名:“在缓冲区中没有显示,同时我想阅读?@yapkm01,就像我说的-解开它们。然而,你似乎不太可能真的想这么做。@yapkm01:如果你认为这最能回答你的问题,你应该接受它。@sbi另一个更好的答案可能来自不同时区的人。请不要强迫别人(特别是代表我的人)接受。@Neil:据我所知,你以后可以随时更改被接受的答案。如果一个答案适合并回答了这个问题,为什么不接受呢?不管怎么说,我不是想施加压力。我只是觉得一个代表6岁的人可能不太了解规则,可以忍受被暗示。