The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

money_get (3)
  • >> money_get (3) ( Solaris man: Библиотечные вызовы )
  • 
                           Standard C++ Library
                 Copyright 1998, Rogue Wave Software, Inc.
    
    
    NAME
         money_get
    
          - Monetary formatting facet for input.
    
    
    
    SYNOPSIS
         #include <locale>
         template <class charT,
                  class InputIterator = istreambuf_iterator<charT> >
         class money_get;
    
    
    
    DESCRIPTION
         The money_get_facet  interprets  formatted  monetary  string
         values.
    
    
    
    INTERFACE
         template <class charT,
                  class InputIterator = istreambuf_iterator<charT> >
         class money_get : public locale::facet {
         public:
          typedef charT               char_type;
          typedef InputIterator       iter_type;
          typedef basic_string<charT> string_type;
          explicit money_get(size_t = 0);
          iter_type get(iter_type, iter_type, bool, ios_base&,
                        ios_base::iostate&, long double&) const;
          iter_type get(iter_type, iter_type, bool, ios_base&,
                        ios_base::iostate&, string_type&) const;
          static locale::id id;
         protected:
           ~money_get();  // virtual
          virtual iter_type do_get(iter_type, iter_type,
                                   bool, ios_base&,
                                   ios_base::iostate&,
                                   long double&) const;
          virtual iter_type do_get(iter_type, iter_type,
                                   bool, ios_base&,
                                   ios_base::iostate&,
                                   string_type&) const;
    
         };
    
    
    
    TYPES
         char_type
    
    
            Type of character upon which the facet is instantiated.
    
    
    
         iter_type
    
    
            Type of iterator used to scan the character buffer.
    
    
    
         string_type
    
    
            Type of character string passed to member functions.
    
    
    
    CONSTRUCTORS
         explicit money_get(size_t refs = 0)
    
    
            Construct a money_get facet. If the refs argument  is  0,
            then  destruction  of  the  object  is  delegated  to the
            locale, or locales, containing it. This allows  the  user
            to  ignore lifetime management issues. On the other hand,
            if refs is 1, then the object must be explicitly deleted;
            the locale does not do so.
    
    
    
    DESTRUCTORS
         ~money_get();  // virtual and protected
    
    
            Destroys the facet.
    
    
    
    STATIC MEMBERS
         static locale::id id;
    
    
            Unique identifier for this type of facet.
    
    
    
    PUBLIC MEMBER FUNCTIONS
         The public members of the money_get facet include an  inter-
         face  to  protected  members.  Each  public member get has a
         corresponding virtual protected member do_get.
    
    
         iter_type
         get(iter_type s, iter_type end, bool intl, ios_base& f,
            ios_base::iostate& err, long double& units) const;
         iter_type
         get(iter_type s, iter_type end, bool intl, ios_base& f,
            ios_base::iostate& err, string_type& digits) const;
    
    
            Each of these two overloads of the public member function
            get calls the corresponding protected do_get function.
    
    
    
    PROTECTED MEMBER FUNCTIONS
         virtual iter_type
         do_get(iter_type s, iter_type end,
               bool intl, ios_base& f,
               ios_base::iostate& err,
               long double& units) const;
         virtual iter_type
         do_get(iter_type s, iter_type end,
               bool intl, ios_base& f,
               ios_base::iostate& err,
               string_type& digits) const;
    
    
            Reads in a localized character representation of a  mone-
            tary value and generates a generic representation, either
            as a sequence of digits or as a long double  value.    In
            either  case  do_get  uses  the smallest possible unit of
            currency.
    
            Both overloads of do_get read characters from  the  range
            [s,end) until one of three things occurs:
                 -    A monetary value is assembled
    
                 -    An error occurs
    
                 -    No more characters are available.
    
    
            The functions use  f.flags()  and  the  moneypunct<charT,
            true> or moneypunct<charT, false> facet (depending on the
            intl argument) from f.getloc() for formatting information
            to  use  in  interpreting  the  sequence  of  characters.
            do_get, then places a pure sequence of digits  represent-
            ing  the  monetary value in the smallest possible unit of
            currency into the string argument digits,  or  it  calcu-
            lates  a  long  double  value  based  on those digits and
            returns that value in units.
    
            The following specifics apply to formatting:
    
    
    
                 -    Digit group  separators  are  optional.  If  no
                      grouping   is  specified,  then  any  thousands
                      separator characters are treated as delimiters.
    
                 -    If space or none are part of the format pattern
                      in moneypunct, then optional whitespace is con-
                      sumed, except at the end.  See  the  moneypunct
                      reference  section  for a description of money-
                      specific formatting flags.
    
                 -    If iosbase::showbase is set in f.flags(),  then
                      the  currency  symbol  is  optional,  and if it
                      appears after all other elements,  then  it  is
                      not  consumed. Otherwise the currency symbol is
                      required, and is consumed wherever it occurs.
    
                 -    digits are preceded  by  a  `-'  or  units  are
                      negated, if the monetary value is negative.
    
                 -    See the  moneypunct  reference  section  for  a
                      description of money specific formatting flags.
    
    
            The err argument is set to iosbase::failbit if  an  error
            occurs during parsing.
    
            Returns an iterator pointing one past the last  character
            that is part of a valid monetary sequence.
    
    
    EXAMPLE
         //
         // moneyget.cpp
         //
    
         #include <string>
         #include <sstream>
         using namespace std;
    
         int main ()
         {
          using namespace std;
          typedef istreambuf_iterator<char,char_traits<char> >
                  iter_type;
    
          locale loc;
          string buffer("$100.02");
          string dest;
          long double ldest;
          ios_base::iostate state;
          iter_type end;
    
           // Get a money_get facet
          const money_get<char,iter_type>& mgf =
         #ifndef _RWSTD_NO_TEMPLATE_ON_RETURN_TYPE
            use_facet<money_get<char,iter_type> >(loc);
         #else
            use_facet(loc,(money_get<char,iter_type>*)0);
         #endif
    
           {
             // Build an istringstream from the buffer and construct
             // a beginning iterator on it.
            istringstream ins(buffer);
            iter_type begin(ins);
    
             // Get a string representation of the monetary value
            mgf.get(begin,end,false,ins,state,dest);
           }
           {
             // Build another istringstream from the buffer, etc.
             // so we have an iterator pointing to the beginning
            istringstream ins(buffer);
            iter_type begin(ins);
    
             // Get a long double representation
             // of the monetary value
            mgf.get(begin,end,false,ins,state,ldest);
           }
          cout << buffer << " --> " << dest
                << " --> " << ldest << endl;
    
          return 0;
         }
    
    
    
    SEE ALSO
         locale, facets, money_put, moneypunct
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру