c++流和c流

c++ 流 和 c 流

  1. 标准的c++流默认与其相对应的c流同步:( 在每次输入/输出后同步 )

    • 同步的c++无缓冲,每次c++流上的$I/O$操作都立即应用到对应 C 流的缓冲区。这使得能自由地混合 C++ 与 C $I/O$ 。
    • 若关闭同步,则允许 C++ 标准流独立地缓冲其 I/O ,可认为这在某些情况下更快。```c

#include
#include

int main()
{
std::ios::sync_with_stdio(false);
std::cout << “a\n”;
std::printf(“b\n”);
std::cout << “c\n”;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

---

- 关闭同步后没有下面的操作也没啥用

---
2. `std::endl``\n`的差别

- `std::endl = \n + flush()`插入换行符且刷新缓冲区
3. 一旦构造 `std::cin``std::cin.tie()` 就返回 `&std::cout`

一旦初始化,则 `std::cout``tie()``std::cin`

- `std::cin`读入之前会强制调用`std::cout.flush()`

   为了避免频繁的刷新缓冲区,解除`std::cin`和`std::cout`的绑定

   `std::cin.tie()`

   `std::cout.tie()`
 ```

  1. 大佬blog
  2. sync
  3. end
  4. cout

c++流和c流
https://blog.989883.xyz/2019/12/14/csdn/c++流和c流/
作者
emerald
发布于
2019年12月14日
许可协议