共用方式為


money_get::get

從表示一個貨幣值的字元順序擷取數值。

iter_type get( 
   iter_type _First,  
   iter_type _Last, 
   bool _Intl,  
   ios_base& _Iosbase,  
   ios_base::iostate& _State, 
   long double& _Val 
) const; 
iter_type get( 
   iter_type _First,  
   iter_type _Last, 
   bool _Intl,  
   ios_base& _Iosbase,  
   ios_base::iostate& _State, 
   string_type& _Val 
) const;

參數

  • _First
    輸入定址的 Iterator 要轉換的序列的開頭。

  • _Last
    輸入定址的 Iterator 要轉換的序列結尾。

  • _Intl
    表示貨幣符號的型別必須是布林值在序列: true ,如果國際, false ,如果國家/地區內。

  • _Iosbase
    格式旗標,則集合表示貨幣符號是選擇性的;否則,需要

  • _State
    設定資料流狀態的適當位元遮罩項目,根據可能的選取作業成功。

  • _Val
    存放已轉換的字串。

傳回值

輸入定址的 Iterator 在貨幣輸入欄位之外的第一個項目。

備註

兩個成員函式會傳回 do_get(_First,_Last,_Intl, _Iosbase、 _State, _Val)。

範例

// money_get_get.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;

int main( )
{
   locale loc( "german_germany" );

   basic_stringstream< char > psz;
   psz << use_facet<moneypunct<char, 1> >(loc).curr_symbol() << "-1.000,56";
   basic_stringstream< char > psz2;
   psz2 << "-100056" << use_facet<moneypunct<char, 1> >(loc).curr_symbol();

   ios_base::iostate st = 0;
   long double fVal;

   psz.flags( psz.flags( )|ios_base::showbase ); 
   // Which forced the READING the currency symbol
   psz.imbue(loc);
   use_facet < money_get < char > >( loc ).
      get( basic_istream<char>::_Iter( psz.rdbuf( ) ),   
           basic_istream<char>::_Iter( 0 ), true, psz, st, fVal );

   if ( st & ios_base::failbit )
      cout << "money_get(" << psz.str( ) << ", intl = 1) FAILED"
           << endl;
   else
      cout << "money_get(" << psz.str( ) << ", intl = 1) = " 
           << fVal/100.0 << endl;

   use_facet < money_get < char > >( loc ).
      get(basic_istream<char>::_Iter(psz2.rdbuf( )),   
          basic_istream<char>::_Iter(0), false, psz2, st, fVal);

   if ( st & ios_base::failbit )
      cout << "money_get(" << psz2.str( ) << ", intl = 0) FAILED" 
           << endl;
   else
      cout << "money_get(" << psz2.str( ) << ", intl = 0) = " 
           << fVal/100.0 << endl;
};

範例輸出

如果您執行的是 Windows 2000 或之前,就會產生這個輸出:

money_get(DEM-1.000,56, intl = 1) = -1000.56
money_get(-100056DM, intl = 0) = -1000.56

如果您執行的是 Windows XP 中,您會得到這個輸出:

money_get(EUR-1.000,56, intl = 1) = -1000.56
money_get(-100056EUR, intl = 0) = -1000.56

需求

標題: <地區設定>

命名空間: std

請參閱

參考

money_get 類別