public member function
<ios> <iostream>

std::basic_ios::copyfmt

basic_ios& copyfmt (const basic_ios& rhs);
複製格式資訊
rhs的所有內部成員(狀態標誌和關聯的流緩衝區除外)的值複製到*this的相應成員。

呼叫之後,以下成員函式對rhs*this返回相同的值
element描述
標誌格式標誌
寬度欄位寬度
precisionprecision
getlocselected locale
iarrayinternal extensible array *
parrayinternal extensible array *
fill填充字元
tie繫結流
exceptionsexceptions mask (last to be copied, see below)

* 每個流物件都保留其自身的內部可擴充套件陣列iwordpword)的副本:其內容被複制,而不是僅僅複製指向它的指標。
* 每個流物件都保留其自身的內部可擴充套件陣列iwordpword)的副本:其內容被複制,而不是僅僅複製指向它的指標。

如果將被複制的指標值指向儲存在rhs外部的物件,並且這些物件在rhs銷燬時也被銷燬,則*this將儲存指向這些物件新構造副本的指標。

呼叫此函式會呼叫兩次透過成員register_callback註冊的所有函式:首先,在複製過程開始之前,函式會使用(*fn)(erase_event,*this,index)呼叫每個註冊的回撥函式fn。然後,在最後,在異常掩碼被複制之前,函式會使用(*fn)(copyfmt_event,*this,index)呼叫每個註冊的回撥函式fn(第二次呼叫可用於訪問和修改複製的內部可擴充套件陣列)。

引數

rhs
Stream object whose members are copied to *this.

返回值

*this

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// copying formatting information
#include <iostream>     // std::cout
#include <fstream>      // std::ofstream

int main () {
  std::ofstream filestr;
  filestr.open ("test.txt");

  std::cout.fill ('*');
  std::cout.width (10);
  filestr.copyfmt (std::cout);

  std::cout << 40;
  filestr << 40;

  return 0;
}

此示例以相同格式將一個數字輸出到cout和名為"test.txt"的檔案中。
********40


資料競爭

Modifies the stream object (*this), and accesses rhs.
Concurrent access to any of the objects may cause data races.

異常安全

基本保證:如果丟擲異常,流處於有效狀態。

另見