public member function
<streambuf> <iostream>

std::basic_streambuf::xsputn

streamsize xsputn (const char_type* s, streamsize n);
Put sequence of characters
將指標 s 所指向的字元陣列寫入受控輸出序列,直到寫入 n 個字元或達到輸出序列的末尾為止。

basic_streambuf 中的預設行為是呼叫 sputc n 次,如果任何呼叫返回 traits_type::eof(),則停止。
basic_streambuf 中的預設行為是獲取 n 個字元,就如同為每個字元呼叫 sputc 一樣,如果在 overflows 情況下任何呼叫會返回 traits_type::eof(),則停止。不同之處在於,是否呼叫成員函式 overflow 或是否使用其他方式處理溢位是未指定的。

這是一個虛成員函式,派生類可以提供更有效的實現。

引數

s
指向要寫入的字元序列的指標。
成員型別 char_type流緩衝區(第一個類模板引數)中字元的型別。
n
要寫入的字元數。
這應該是一個非負值。
streamsize 是一個帶符號整型。

返回值

寫入的字元數。
streamsize 是一個帶符號整型。

資料競爭

訪問 s 指向的陣列中最多前 n 個字元。
修改*流緩衝區*物件。
對同一陣列或同一流緩衝區物件的併發訪問可能會引入資料爭用。

異常安全

基本保證:如果丟擲異常,則流緩衝區處於有效狀態(這也適用於標準派生類)。

無效引數會導致未定義行為

另見