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