共用方式為


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_stringbyte_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 儲存於轉換物件