C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 为什么我们需要绑定std :: cin和std :: cout?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
认情况下,标准输入设备与标准输出设备绑定在一起,格式如下:
std :: cin.tie(& std :: cout);这保证输入缓冲区在调用输入之前被刷新.所以我试通过使用std :: cin.tie(0)来解开它们,但似乎结果与绑定没有任何区别.
#include<iostream>
using namespace std;

int main(int argc,char *argv[])
{
    char c;

    cin.tie(0)

    cout << "Please enter c:";
    cin >> c;
    cout << c ;

    return 0;
}

我测试错了吗?为什么我们需要把它们捆在一起?他们共享相同的缓冲区吗?

解决方法

您的示例中没有错误(除了您应该在cin.tie(0)行之后添加分号),也不用iostream对象的工作方式.

tie()只是在cin执行输入之前保证cout的刷新.这对于用户在被问到答案之前看到这个问题是有用的.

但是,如果你从cout中取消()cin,那么不能保证cout的缓冲区被刷新.但是不能保证缓冲区没有被冲洗掉.事实上,如果计算机有足够的资源,它将立即刷新cout缓冲区,所以这是在cin请求输入之前发生的.在你的例子中就是这样.

所以,一切都很好.除了cin.tie(0)之外,不能保证会发生冲水.然而,在99%的情况下,冲洗仍然会发生(但不再保证).

在理论上,如果被绑定,cin和cout可以共享相同的缓冲区.但是,我认为没有这样做.一个原因是两个可能是不相关()d.

大佬总结

以上是大佬教程为你收集整理的c – 为什么我们需要绑定std :: cin和std :: cout?全部内容,希望文章能够帮你解决c – 为什么我们需要绑定std :: cin和std :: cout?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。