更改字符串区域设置

时间:2009-12-31 17:07:21

标签: c++ string stl

我不太熟悉特定于语言环境的转换,所以我可能在这里使用了错误的术语。这就是我想要发生的事情。

我想写一个函数

std::string changeLocale( const std::string& str, const std::locale& loc )

如果我按如下方式调用此函数:

changeLocale( std::string( "1.01" ), std::locale( "french_france" ) )

输出字符串为“1,01”

感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

这样的事情应该做的伎俩

#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 ++上输出)。您可能不得不摆弄语言环境规范,因为它非常特定于平台。