对字符串流使用本地小数分隔符,但不使用分组字符
Use local decimal separator, but not grouping character, with stringstream
我想像在当前区域设置可能的重复项:
在 c++ 中插入和删除整数中的逗号
中一样使用小数分隔符写入双精度值,但我不希望它按当前区域设置中的分组字符进行分组。目前的方法
stringstream s;
s.imbue(std::locale(""));
仅解决其中一个问题。当前输出类似于 1,234.567 而不是想要的 1234.567
我该如何更改此设置?
在Dirkgently的帖子插入和删除整数的逗号的帮助下,我创建了以下类:
class no_grouping : public std::numpunct_byname<char> {
std::string do_grouping() const { return ""; }
public:
no_grouping() : numpunct_byname("") {}
};
这里重要的是从numpunkct_byname派生并使用本地区域设置的构造函数参数 " 对其进行初始化。
然后可以轻松地将流注入以下代码:
ostringstream stringBuff;
std::locale locale(std::locale(""),new no_grouping);
stringBuff.imbue(locale);
这将删除分组,但它将采用本地区域设置中的小数分隔符。
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- C++将浮点指针值舍入为小数位数
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 从给定的 I 和 D 序列中形成最小数
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何将小数NCR转换为Unicode字符(C )
- 对字符串流使用本地小数分隔符,但不使用分组字符