7

这是否仅仅意味着我们对 cout 之类的对象所做的任何事情都会与 stdout 同步(反之亦然?)。这究竟是什么意思。stdio 是否也与 stdout 同步?

4

3 回答 3

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
...
于 2013-07-26T03:27:29.020 回答
2

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

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

于 2013-07-26T03:20:45.490 回答
0

每个 cppreference:

Sets whether the standard C++ streams are synchronized to
the standard C streams after each input/output operation.
于 2013-07-26T03:19:44.737 回答