c++流和c流

c++ 流 和 c 流

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

    • 同步的c++无缓冲,每次c++流上的$I/O$操作都立即应用到对应 C 流的缓冲区。这使得能自由地混合 C++ 与 C $I/O$ 。

    • 若关闭同步,则允许 C++ 标准流独立地缓冲其 I/O ,可认为这在某些情况下更快。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    #include <cstdio>

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

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

  2. std::endl\n的差别

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

    一旦初始化,则 std::couttie() 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


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!