iostream的确切含义是与ios_base :: sync_with_stdio同步

时间:2013-07-26 03:12:26

标签: c++ c stdout iostream

这是否意味着无论我们如何处理对象,如cout与stdout同步(反之亦然?)。这到底意味着什么? stdio是否也与stdout同步?

3 个答案:

答案 0 :(得分:8)

如果同步关闭,C ++流在某些情况下会更快。

默认情况下,所有标准C ++流都与其各自的C流同步。

示例:

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    cout.sync_with_stdio(false);
    cout << "Hello\n";
    printf("World\n");
    cout << "...\n";
}

输出:

Hello
...
World

将其更改为true可按顺序提供默认结果。 输出:

Hello
World
...

答案 1 :(得分:2)

std :: cout和stdio(比如printf)使用的默认ostream是stdout,但不一定如此。

输出总是可以重定向到另一个目的地。参考:http://www.tldp.org/LDP/abs/html/io-redirection.html

答案 2 :(得分:0)

每个cppreference:

Sets whether the standard C++ streams are synchronized to
the standard C streams after each input/output operation.