我对特定于语言环境的转换不是很熟悉,所以我在这里可能使用了错误的术语。这就是我想要发生的事情。
我想写一个函数
std::string changeLocale( const std::string& str, const std::locale& loc )
如果我按如下方式调用此函数:
changeLocale( std::string( "1.01" ), std::locale( "french_france" ) )
输出字符串将是“1,01”
感谢您的帮助!
最佳答案
像这样的东西应该可以解决问题
#include <iostream>
#include <sstream>
#include <locale>
int main (int argc,char** argv) {
std::stringstream ss;
ss.imbue(std::locale("fr_FR.UTF8"));
double value = 1.01;
ss << value;
std::cout << ss.str() << std::endl;
return 0;
}
应该为您提供 1,01
的输出(至少在 g++ 上如此)。您可能不得不摆弄语言环境规范,因为它非常特定于平台。
关于c++ - 更改字符串语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1986199/