Страница 1 из 1

проблемка с C++ locales

Добавлено: 12 июл 2005, 11:48
inko.
Никто не задавался задачаей с помощью сабжа, например, выводить числа с разделителем для тысяч (вроде "10,000.561")? Судя по всему, это делается кодом типа

class xxx: public numpunct_byname<char>
{
protected:
~xxx() {}
public:
char do_thousands_sep();
explicit xxx()
: numpunct_byname<char>("german") {}
};

char xxx::do_thousands_sep()
{
return ' ';
}


void main(int argc, char* argv[])
{
..
std::locale loc = std::_ADDFAC( dloc, new xxx);
std::cout.imbue(loc);
std::cout << 10000.561 << endl;
..
}

однако почему-то не работает. Функция do_thousands_sep() вообще
не вызывается, однако то, что конструктор создает — numpunct_byname<char>("german") — именно немецкий locale — факт, ибо в качестве decimal_point уже печатается ',', а не '.' — как в стандарте..

Добавлено: 13 июл 2005, 16:06
inko.
хм, уже сам сделал, ручками..