我一直在寻找一种方法来将我自己的自定义标志字符添加到正数和负数中,但似乎没有一种标准方法可以这样做。 IOStreams中的加号减号是否国际化?我能找到最接近它的是std::moneypunct
中的positive_sign()
/ negative_sign()
函数,但这仅适用于货币数据。这样的事情似乎适合std::numpunct
。
答案 0 :(得分:1)
使用std::ctype<cT>::widen(s)
获取符号字符,其中s
是符号字符。没有自定义的默认方式来通过覆盖特定的成员函数来专门更改符号字符。但是,使用任何其他符号字符创建自定义std::num_put<...>
或std::num_get<...>
是相当简单的。小数点和千位分隔符被区别对待的原因是它们嵌入在实际值的某处,并且创建特殊版本的代码并不容易。