共用方式為


numpunct 類別

類別範本,描述可做為本機 Facet 的物件,以描述用來表示數值和布爾運算式之格式設定和標點符號資訊的型 CharType 別序列。

語法

template <class CharType>
class numpunct : public locale::facet;

參數

CharType
程式內用於編碼地區設定字元的類型。

備註

如同所有地區設定 facet,靜態物件識別碼有初始儲存值零。 第一次嘗試存取它的儲存值時,會在 id 中儲存一個唯一的正值。

建構函式

建構函式 描述
numpunct numpunct 類型物件的建構函式。

Typedefs

類型名稱 描述
char_type 類型,用來描述由地區設定使用的字元。
string_type 類型,描述包含 CharType 類型字元的字串。

成員函式

成員函數 描述
decimal_point 傳回地區設定特定項目以做為小數點。
do_decimal_point 受保護的虛擬成員函式,呼叫以傳回要做為小數點的地區設定特定項目。
do_falsename 受保護的虛擬成員函式,呼叫以傳回要當做 false 值的文字表示的字串。
do_grouping 受保護的虛擬成員函式,呼叫以傳回決定如何將數字群組在小數點左側的地區設定特定規則。
do_thousands_sep 受保護的虛擬成員函式,呼叫以傳回要做為千位分隔符號的地區設定特定項目。
do_truename 受保護的虛擬成員函式,呼叫以傳回要當做 true 值的文字表示的字串。
falsename 傳回字串,做為 false 值的文字表示。
grouping 傳回決定如何將數字群組在任何小數點左側的地區設定特定規則。
thousands_sep 傳回地區設定特定項目以做為千位分隔符號。
truename 傳回字串,做為 true 值的文字表示。

需求

Header:<locale>

命名空間:std

numpunct::char_type

類型,用來描述由地區設定使用的字元。

typedef CharType char_type;

備註

此類型與範本參數 CharType 同義。

numpunct::d ecimal_point

傳回地區設定特定項目以做為小數點。

CharType decimal_point() const;

傳回值

要做為小數點的地區設定特定項目。

備註

此成員函式會傳回 do_decimal_point

範例

// numpunct_decimal_point.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany" );

   const numpunct <char> &npunct =
   use_facet <numpunct <char> >( loc);
   cout << loc.name( ) << " decimal point "<<
   npunct.decimal_point( ) << endl;
   cout << loc.name( ) << " thousands separator "
   << npunct.thousands_sep( ) << endl;
};
German_Germany.1252 decimal point ,
German_Germany.1252 thousands separator .

numpunct::d o_decimal_point

受保護的虛擬成員函式,呼叫以傳回要做為小數點的地區設定特定項目。

virtual CharType do_decimal_point() const;

傳回值

要做為小數點的地區設定特定項目。

範例

請參閱 decimal_point 的範例,其中會由 decimal_point 呼叫此虛擬成員函式。

numpunct::d o_falsename

受保護的虛擬成員函式會傳回序列,以做為值的 false文字表示。

virtual string_type do_falsename() const;

傳回值

字串,包含要當做值 false之文字表示的序列。

備註

成員函式會傳回字串 「false」 來表示所有地區設定中的值 false

範例

請參閱 falsename 的範例,其中 falsename 會呼叫虛擬成員函式。

numpunct::d o_grouping

受保護的虛擬成員函式,呼叫以傳回決定如何將數字群組在小數點左側的地區設定特定規則。

virtual string do_grouping() const;

傳回值

地區設定特定規則,用來決定任何小數點左邊數字分組的方式。

備註

受保護的虛擬成員函式傳回決定如何將數字群組在小數點左側的地區設定特定規則。 編碼和 lconv::grouping 相同。

範例

請參閱群組範例,其中虛擬成員函式是由grouping呼叫。

numpunct::d o_thousands_sep

受保護的虛擬成員函式,呼叫以傳回要做為千位分隔符號的地區設定特定項目。

virtual CharType do_thousands_sep() const;

傳回值

傳回地區設定特定項目以做為千位分隔符號。

備註

受保護的虛擬成員函式會傳回類型的 CharType 地區設定特定專案,以做為任何小數點左邊的群組分隔符。

範例

請參閱 thousands_sep 的範例,其中會由 thousands_sep 呼叫此虛擬成員函式。

numpunct::d o_truename

受保護的虛擬成員函式,呼叫以傳回要當做 true 值的文字表示的字串。

virtual string_type do_truename() const;

備註

字串,做為 值的 true文字表示。

所有地區設定都會傳回字串 「true」 來表示值 true

範例

請參閱 truename 的範例,其中 truename 會呼叫虛擬成員函式。

numpunct::falsename

傳回字串,做為 false 值的文字表示。

string_type falsename() const;

傳回值

字串,包含 CharType要當做值 false之文字表示的 序列。

備註

成員函式會傳回字串 「false」 來表示所有地區設定中的值 false

成員函式會傳回 do_falsename

範例

// numpunct_falsename.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "English" );

   const numpunct <char> &npunct = use_facet <numpunct <char> >( loc );
   cout << loc.name( ) << " truename "<< npunct.truename( ) << endl;
   cout << loc.name( ) << " falsename "<< npunct.falsename( ) << endl;

   locale loc2( "French" );
   const numpunct <char> &npunct2 = use_facet <numpunct <char> >(loc2);
   cout << loc2.name( ) << " truename "<< npunct2.truename( ) << endl;
   cout << loc2.name( ) << " falsename "<< npunct2.falsename( ) << endl;
}
English_United States.1252 truename true
English_United States.1252 falsename false
French_France.1252 truename true
French_France.1252 falsename false

numpunct::grouping

傳回決定如何將數字群組在任何小數點左側的地區設定特定規則。

string grouping() const;

傳回值

地區設定特定規則,用來決定任何小數點左邊數字分組的方式。

備註

此成員函式會傳回 do_grouping

範例

// numpunct_grouping.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany");

   const numpunct <char> &npunct =
       use_facet < numpunct <char> >( loc );
   for (unsigned int i = 0; i < npunct.grouping( ).length( ); i++)
   {
      cout << loc.name( ) << " international grouping:\n the "
           << i <<"th group to the left of the radix character "
           << "is of size " << (int)(npunct.grouping ( )[i])
           << endl;
   }
}
German_Germany.1252 international grouping:
the 0th group to the left of the radix character is of size 3

numpunct::numpunct

numpunct 類型物件的建構函式。

explicit numpunct(size_t _Refs = 0);

參數

_裁判
整數值,用來指定物件的記憶體管理類型。

備註

_Refs 參數的可能值及其重要性如下:

  • 0:物件的存留期由包含該物件的地區設定來管理。

  • 1:物件的存留期必須以手動方式管理。

  • > 1:未定義這些值。

無法提供任何直接範例,因為解構函式受到保護。

建構函式會使用 locale::facet_Refs) 初始化其基底物件。

numpunct::string_type

類型,描述包含 CharType 類型字元的字串。

typedef basic_string<CharType, Traits, Allocator> string_type;

備註

此類型描述類別範本 的特製化basic_string 物件可以儲存標點符號序列的複本。

numpunct::thousands_sep

傳回地區設定特定項目以做為千位分隔符號。

CharType thousands_sep() const;

傳回值

要做為千位分隔符號的地區設定特定項目。

備註

此成員函式會傳回 do_thousands_sep

範例

// numpunct_thou_sep.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany" );

   const numpunct <char> &npunct =
   use_facet < numpunct < char > >( loc );
   cout << loc.name( ) << " decimal point "<<
   npunct.decimal_point( ) << endl;
   cout << loc.name( ) << " thousands separator "
   << npunct.thousands_sep( ) << endl;
};
German_Germany.1252 decimal point ,
German_Germany.1252 thousands separator .

numpunct::truename

傳回字串,做為 true 值的文字表示。

string_type falsename() const;

傳回值

字串,做為 值的 true文字表示。

備註

成員函式會傳回 do_truename

所有地區設定都會傳回字串 「true」 來表示值 true

範例

// numpunct_truename.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "English" );

   const numpunct < char> &npunct = use_facet <numpunct <char> >( loc );
   cout << loc.name( ) << " truename "<< npunct.truename( ) << endl;
   cout << loc.name( ) << " falsename "<< npunct.falsename( ) << endl;

   locale loc2("French");
   const numpunct <char> &npunct2 = use_facet <numpunct <char> >( loc2 );
   cout << loc2.name( ) << " truename "<< npunct2.truename( ) << endl;
   cout << loc2.name( ) << " falsename "<< npunct2.falsename( ) << endl;
}
English_United States.1252 truename true
English_United States.1252 falsename false
French_France.1252 truename true
French_France.1252 falsename false

另請參閱

<地區設定>
facet 類別
C++ 標準程式庫中的執行緒安全