wstring_convert 類別
類別範本 wstring_convert
會執行寬字串與位元組位元串之間的轉換。
語法
template <class Codecvt, class Elem = wchar_t>
class wstring_convert
參數
Codecvt
locale Facet,代表轉換物件。
Elem
寬字元項目類型。
備註
類別範本描述物件,控制類別寬字串物件與類別 std::basic_string<Elem>
位元組位元串物件 std::basic_string<char>
之間的轉換(也稱為 std::string
)。 類別範本會將型wide_string
byte_string
別定義為這兩種類型的同義字。 Elem
值的序列 (儲存在 wide_string
物件中) 與多位元組序列 (儲存在 byte_string
物件中) 之間的轉換,是由類別 Codecvt<Elem, char, std::mbstate_t>
的物件所執行,其符合標準程式碼轉換 facet std::codecvt<Elem, char, std::mbstate_t>
的需求。
這個類別樣本的物件會儲存:
發生錯誤時顯示的位元組字串
發生錯誤時顯示的寬字串
配置的轉換物件的指標 (在終結 wbuffer_convert 物件時釋放)
state_type 類型的轉換狀態物件
轉換計數
建構函式
建構函式 | 描述 |
---|---|
wstring_convert | 建構類型 wstring_convert 的物件。 |
Typedefs
類型名稱 | 描述 |
---|---|
byte_string | 代表位元組字串的類型。 |
wide_string | 代表寬字串的類型。 |
state_type | 代表轉換狀態的類型。 |
int_type | 代表整數的類型。 |
成員函式
成員函數 | 描述 |
---|---|
from_bytes | 將位元組字串轉換為寬字串。 |
to_bytes | 將寬字串轉換為位元組字串。 |
converted | 傳回成功轉換的數目。 |
state | 傳回表示轉換狀態的物件。 |
需求
Header:<locale>
命名空間:std
wstring_convert::byte_string
代表位元組字串的類型。
typedef std::basic_string<char> byte_string;
備註
此類型是 std::basic_string<char>
的同義字。
wstring_convert::converted
傳回成功轉換的數目。
size_t converted() const;
傳回值
成功轉換的數目。
備註
成功轉換的數目會儲存在轉換計數物件中。
wstring_convert::from_bytes
將位元組字串轉換為寬字串。
wide_string from_bytes(char Byte);
wide_string from_bytes(const char* ptr);
wide_string from_bytes(const byte_string& Bstr);
wide_string from_bytes(const char* first, const char* last);
參數
位元組
要轉換的單一元素位元組序列。
ptr
要轉換的 C-style、以 Null 結束的字元序列。
Bstr
要轉換的 byte_string。
first
在字元範圍中要轉換的第一個字元。
last
在字元範圍中要轉換的最後一個字元。
傳回值
因轉換而產生的寬字串物件。
備註
如果轉換狀態物件不是使用明確值建構的,則會在轉換開始之前,將其預設值 (初始轉換狀態) 設定為 。 否則會維持不變。
成功轉換的輸入項目數目會儲存在轉換計數物件中。 如果未發生轉換錯誤,成員函式會傳回已轉換的寬字串。 否則,如果物件是以 wide-string 錯誤訊息的初始設定式建構,則成員函式會傳回 wide-string 錯誤訊息物件。 否則,成員函式會擲回 range_error 類別的物件。
wstring_convert::int_type
代表整數的類型。
typedef typename wide_string::traits_type::int_type int_type;
備註
此類型是 wide_string::traits_type::int_type
的同義字。
wstring_convert::state
傳回表示轉換狀態的物件。
state_type state() const;
傳回值
轉換狀態物件,代表轉換的狀態。
備註
wstring_convert::state_type
代表轉換狀態的類型。
typedef typename Codecvt::state_type state_type;
備註
此類型描述可代表轉換狀態的物件。 此類型是 Codecvt::state_type
的同義字。
wstring_convert::to_bytes
將寬字串轉換為位元組字串。
byte_string to_bytes(Elem Char);
byte_string to_bytes(const Elem* Wptr);
byte_string to_bytes(const wide_string& Wstr);
byte_string to_bytes(const Elem* first, const Elem* last);
參數
Char
要轉換的寬字元。
Wptr
要轉換的 C-style、以 Null 結束的序列 (開始於 wptr
)。
Wstr
要轉換的 wide_string。
first
項目範圍中要轉換的第一個項目。
last
項目範圍中要轉換的最後一個項目。
備註
如果轉換狀態物件不是使用明確值建構的,則會在轉換開始之前,將其預設值 (初始轉換狀態) 設定為 。 否則會維持不變。
成功轉換的輸入項目數目會儲存在轉換計數物件中。 如果未發生轉換錯誤,成員函式會傳回已轉換的位元組字串。 否則,如果物件是以 byte-string 錯誤訊息的初始設定式建構,則成員函式會傳回 byte-string 錯誤訊息物件。 否則,成員函式會擲回 range_error 類別的物件。
wstring_convert::wide_string
代表寬字串的類型。
typedef std::basic_string<Elem> wide_string;
備註
此類型是 std::basic_string<Elem>
的同義字。
wstring_convert::wstring_convert
建構類型 wstring_convert
的物件。
wstring_convert(Codecvt *Pcvt = new Codecvt);
wstring_convert(Codecvt *Pcvt, state_type _State);
wstring_convert(const byte_string& _Berr, const wide_string& Werr = wide_string());
參數
*Pcvt
Codecvt
類型的物件,用以執行轉換。
_州
state_type 類型的物件,代表轉換狀態。
_Berr
發生錯誤時顯示的 byte_string。
Werr
發生錯誤時顯示的 wide_string。
備註
第一個建構函式會將 Pcvt_arg 儲存於轉換物件中