Здравствуйте, Adriano, Вы писали:
A>Есть ли в boost аналог GetNumberFormat. Надо форматировать числа. например 12345232 > 1 234 5232
Такую группировку умеют делать как стандартный ostream, так и сишные функции вывода, надо всего лишь указать, что вам надо. Для стримов можно сделать так:
template <class CharType>
class my_numpunct : public std::numpunct<CharType>
{
std::string grouping_;
public:
my_numpunct(std::size_t refs, std::string const &grouping) :
std::numpunct<CharType>(refs), grouping_(grouping) {}
protected:
virtual std::string do_grouping() const
{ return grouping_; }
virtual char_type do_thousands_sep() const
{ return ' '; }
};
void SetFormat(std::wostream &os)
{
using std::locale;
locale streamLocale = os.getloc();
locale loc(locale(), new my_numpunct<wchar_t>(0, "\3");
streamLocale = streamLocale.combine<numpunct<wchar_t> >(loc);
os.imbue(streamLocale);
}
После вызова SetFormat для вашего стрима он начнет выводить числа с группировкой.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.