函式
<ostream> <iostream>

std::ends

用於 ostream
ostream& ends (ostream& os);
基礎模板
template <class charT, class traits>basic_ostream<charT,traits>& ends (basic_ostream<charT,traits>& os);
插入空字元
os 上插入一個空字元

其行為等同於呼叫 os.put('\0')(對於其他字元型別,則等同於呼叫 os.put(charT()))。

引數

os
插入字元的輸出流物件。
由於此函式是操縱符,因此它設計為獨立使用,不帶引數,並與輸出流的插入 (<<) 操作結合使用。

返回值

引數 os

透過修改 os內部狀態標誌來發出錯誤訊號。
標誌錯誤
eofbit-
failbit如果 sentry 物件的構造失敗,則可能設定此標誌。
badbit流上的插入失敗,或者發生了其他錯誤(例如,當此函式捕獲了內部操作丟擲的異常時)。
當設定此標誌時,流的完整性可能受到影響。
單個操作可能在 os 上設定多個標誌。

如果操作設定了 os內部狀態標誌,並且該標誌已使用其成員 exceptions 註冊,則該函式將丟擲型別為 ios_base::failure 的異常。

資料競爭

修改 os
對同一流物件的併發訪問可能導致資料爭用,標準流物件(coutcerrclogwcoutwcerrwclog)在與 stdio 同步時除外(在這種情況下,不會引發資料爭用,但對於從多個執行緒插入字元的順序不作保證)。

異常安全

基本保證:如果丟擲異常,os 處於有效狀態。
如果 os錯誤狀態標誌不是 goodbitexceptions 成員已設定為針對該狀態丟擲,則丟擲型別為 failure 的成員型別異常。
內部操作丟擲的任何異常都會被函式捕獲並處理,設定 osbadbit。如果 exceptions 的最後一次呼叫為 os 設定了 badbit,則該函式會重新丟擲捕獲的異常。

另見