15 Şubat 2018 Perşembe

std::numpunct facet

Giriş
Konuyu açıklayan iyi bir yazı burada

do_decimal_point metodu
Küsurat ayracı olarak kullanılacak karakteri belirtir.
Örnek
Şöyle yaparız
virtual char do_decimal_point() const override { return '.' ; }
do_grouping metodu
Gruplamanın kaç rakamda bir yapılacağını belirtir.

Örnek
Sayıları üçlü gruplar halinde : karakteri ile ayırmak için şöyle yaparız.
template<typename CharT>
struct Sep : public std::numpunct<CharT>
{
  virtual std::string do_grouping()      const   {return "\003";}
  virtual CharT       do_thousands_sep() const   {return ':';}
};

int main()
{
  std::cout.imbue(std::locale(std::cout.getloc(), new Sep <char>()));

  std::cout << 123456789 << "\n";   // this prints 123:456:789
}
Örnek
Gruplamayı kaldırmak için şöyle yaparız.
virtual string_type do_grouping() const
{ return "\000"; } // groups of 0 (disable)
veya şöyle yaparız.
virtual std::string do_grouping() const override { return "" ; }
do_thousands_sep metodu
Onluk basamak ayracı olarak kullanılacak karakteri belirtir.
Örnek
Şöyle yaparız
 virtual char do_thousands_sep() const override { return '\0' ; }


Hiç yorum yok:

Yorum Gönder