C++ IOS 庫 - Setf



描述

它用於設定特定的格式標誌。流的格式標誌影響某些輸入函式中資料的解釋方式以及某些輸出函式如何寫入資料。有關此函式引數的可能值,請參閱 ios_base::fmtflags。

宣告

以下是 ios_base::setf 函式的宣告。

set (1)	fmtflags setf (fmtflags fmtfl);
mask (2) fmtflags setf (fmtflags fmtfl, fmtflags mask);

第一種形式 (1) 設定流的格式標誌,其位在 fmtfl 中設定,其餘部分保持不變,就像呼叫 flags(fmtfl|flags()) 一樣。

第二種形式 (2) 設定流的格式標誌,其位在 fmtfl 和 mask 中都設定,並清除 mask 中設定但在 fmtfl 中未設定的格式標誌,就像呼叫 flags((fmtfl&mask)|(flags()&~mask)) 一樣。

引數

fmtfl − 要設定的格式標誌。如果使用第二種語法,則只有 fmtfl 和 mask 中都設定的位才會在流的格式標誌中設定;mask 中設定但在 fmtfl 中未設定的標誌將被清除。

mask − 包含要修改的標誌的掩碼。

返回值

呼叫之前在流中選擇的格式標誌。

異常

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

資料競爭

修改流物件。併發訪問同一流物件可能會導致資料競爭。

示例

以下示例說明了 ios_base::setf 函式。

#include <iostream>     

int main () {
   std::cout.setf ( std::ios::hex, std::ios::basefield );  
   std::cout.setf ( std::ios::showbase );                  
   std::cout << 100 << '\n';
   std::cout.unsetf ( std::ios::showbase );                
   std::cout << 100 << '\n';
   return 0;
}

讓我們編譯並執行上述程式,這將產生以下結果:

 0x64
64
ios.htm
廣告

© . All rights reserved.