我不太熟悉特定于语言环境的转换,所以我可能在这里使用了错误的术语。这就是我想要发生的事情。
我想写一个函数
std::string changeLocale( const std::string& str, const std::locale& loc )
如果我按如下方式调用此函数:
changeLocale( std::string( "1.01" ), std::locale( "french_france" ) )
输出字符串为“1,01”
感谢您的帮助!
答案 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 ++上输出)。您可能不得不摆弄语言环境规范,因为它非常特定于平台。