# std::basic_ostream<CharT,Traits>::flush

< cpp‎ | io‎ | basic ostream

basic_ostream& flush(); |  |

写入未提交更改到底层输出序列。

若 rdbuf() 为空指针，则不做任何事。

否则，表现为无格式输出函数 (UnformattedOutputFunction) (C++11 起)。构造并检查 sentry 对象后，调用 rdbuf()->pubsync() 。若该调用返回 -1 ，则调用 setstate(badbit) 。

### 参数

（无）

### 返回值

*this

### 异常

若 exceptions()&badbit!=0 则可能抛出 std::ios_base::failure 。

### 示例

    #include <thread>
    #include <iostream>
    #include <chrono>
    void f()
    {
        std::cout << "Output from thread...";
        std::this_thread::sleep_for(std::chrono::seconds(2));
        std::cout << "...thread calls flush()\n";
        std::cout.flush();
    }

    int main()
    {
        std::thread t1(f);
        std::this_thread::sleep_for(std::chrono::seconds(1));
        std::clog << "Output from main\n";
        t1.join();
    }

输出：

    Output from main
    Output from thread.....thread calls flush()

### 参阅

pubsync | 调用 sync() (`std::basic_streambuf<CharT,Traits>` 的公开成员函数)
sync [虚] | 将缓冲与关联的字符序列同步 (`std::basic_streambuf<CharT,Traits>` 的虚受保护成员函数)
flush | 冲洗输出流 (函数模板)
endl | 输出 '\n' 并冲洗输出流 (函数模板)
sync | 与底层存储设备同步 (`std::basic_istream<CharT,Traits>` 的公开成员函数)