函数
<ios> <iostream>

std::nounitbuf

ios_base& nounitbuf (ios_base& str);
不强制在插入后刷新
清除 str 流的 unitbuf “格式”标志。

unitbuf 标志未设置时,关联的缓冲区不会在每次插入操作后被强制刷新。

此标志可以通过 unitbuf 操纵符设置,强制在每次插入后进行刷新。

对于标准流,unitbuf 标志在初始化时未设置

参数

str
格式标志受影响的流对象。
因为此函数是一个操纵符,它被设计为在不带参数的情况下,与流上的插入 (<<) 和提取 (>>) 操作结合使用(见下例)。

返回值

参数 str

示例

1
2
3
4
5
6
7
8
9
10
// modify unifbuf flag
#include <ios>         // std::unitbuf
#include <fstream>     // std::ofstream

int main () {
  std::ofstream outfile ("test.txt");
  outfile << std::unitbuf <<  "Test " << "file" << '\n';  // flushed three times
  outfile.close();
  return 0;
}

数据竞争

修改 str。对同一个流对象的并发访问可能导致数据竞争。

异常安全

基本保证:如果抛出异常,str 处于有效状态。

另见