Author: sebor
Date: Sat May 12 10:32:55 2007
New Revision: 537492
URL: http://svn.apache.org/viewvc?view=rev&rev=537492
Log:
2007-05-12 Martin Sebor <[EMAIL PROTECTED]>
STDCXX-411
* money-get.html: Updated example program to (closely) match
the latest version of the program in svn and to match shown
output.
Modified:
incubator/stdcxx/trunk/doc/stdlibref/money-get.html
Modified: incubator/stdcxx/trunk/doc/stdlibref/money-get.html
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/doc/stdlibref/money-get.html?view=diff&rev=537492&r1=537491&r2=537492
==============================================================================
--- incubator/stdcxx/trunk/doc/stdlibref/money-get.html (original)
+++ incubator/stdcxx/trunk/doc/stdlibref/money-get.html Sat May 12 10:32:55 2007
@@ -165,54 +165,53 @@
#include <iostream> // for cout, endl
#include <iterator> // for istreambuf_iterator
-#include <examples.h>
+int main (int argc, char *argv[])
+{
+ // Get the monetary string and locale from the argument vector.
+ const char* const buffer = 1 < argc ? argv [1] : "$1,234.6789";
+ const char* const locname = 2 < argc ? argv [2] : "en_US";
+ const bool intl = 3 < argc;
+ std::string smon;
+ long double fmon = 0.0;
-int main ()
-{
- typedef std::istreambuf_iterator<char,
- std::char_traits<char> > Iter;
-
- const std::string buffer ("$100.02");
- std::string dest;
- long double ldest;
- std::ios_base::iostate state;
- Iter end;
-
- // Retrieve the money_get facet from the global locale.
- const std::money_get<char, Iter> &mgf =
- std::use_facet<std::money_get<char, Iter> >(std::locale
- ());
+ std::ios_base::iostate state = std::ios_base::goodbit;
+
+ // Retrieve the money_get facet from the named locale.
+ const std::locale loc (locname);
+
+ typedef std::istreambuf_iterator<char> Iter;
+ typedef std::money_get<char, Iter> MoneyGet;
+
+ const MoneyGet &mgf = std::use_facet<MoneyGet>(loc);
{
- // Build an istringstream from the buffer and construct
- // a beginning iterator on it.
+ // Build an istringstream object from the buffer
+ // and imbue the locale in it.
std::istringstream ins (buffer);
- Iter begin (ins);
+ ins.imbue (loc);
- // Get a string representation of the monetary value
- mgf.get (begin, end, false, ins, state, dest);
+ // Get a string representation of the monetary value.
+ mgf.get (ins, Iter (), intl, ins, state, smon);
}
{
- // Build another istringstream from the buffer, etc.
- // so we have an iterator pointing to the beginning
std::istringstream ins (buffer);
- Iter begin (ins);
+ ins.imbue (loc);
- // Get a a long double representation of the monetary
- value
- mgf.get (begin, end, false, ins, state, ldest);
+ // Get a floating point representation of the monetary value.
+ mgf.get (ins, Iter (), intl, ins, state, fmon);
}
- std::cout << buffer << " --> "
- << dest << " --> " << ldest <<
std::endl;
+ // Output the original sequence and its string and floating point
+ // representations.
+ std::cout << buffer << " --> \"" << smon << "\"
--> " << fmon << '\n';
- // return 0 on success, non-zero on failure
+ // Return 0 on success, non-zero on failure.
return !(std::ios_base::eofbit == state);
}
Program Output:
-$100.02 --> 10002 --> 10002
+$1,234.6789 --> "123467" --> 123467
</PRE></UL>
<A NAME="sec13"><H3>See Also</H3></A>
<P><B><I><A HREF="locale.html">locale</A></I></B>, <A
HREF="facets.html">Facets</A>, <B><I><A
HREF="money-put.html">money_put</A></I></B>, <B><I><A
HREF="moneypunct.html">moneypunct</A></I></B></P>