c++ - 加号/减号是否国际化?

标签 c++ stl localization internationalization iostream

我一直在寻找一种方法来将我自己的自定义符号字符添加到正数和负数中,但似乎没有一种标准的方法可以做到这一点。 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/

相关文章:

java - Java 中 XSD 验证错误消息的 I18n

C++ std vector 内容范围

c++ - 为什么 std::make_shared<>() 比 boost::make_shared() 有更好的性能?

C++ 绑定(bind)成员函数的快速方法

c++ - 如何将 vector 中的索引作为一对 (x,y) 坐标?

c++ - 在 C++ 中对 STL 列表使用 push_back() 会导致访问冲突、崩溃

ios - XCode 5 即时本地化应用程序名称

针对 UI 本地化的 Java 日期格式帮助文本

c++ - 返回传递给对象的引用

c++ - boost::signal 库不工作