【发布时间】:2019-09-11 22:23:09
【问题描述】:
看这个例子:
#include <iostream>
#include <stdio.h>
int main()
{
std::ios::sync_with_stdio(false);
std::cout << "a";
printf("b");
std::cout << "c";
}
在 gcc 9.2 上,我得到 acb 作为输出。我期待bac,因为如果我理解正确,std::cout 将使用它的缓冲区。为什么按这个顺序打印?
附加问题:设置std::ios::sync_with_stdio(false) 会提高性能(例如在上面的示例中)?
【问题讨论】: