我对特定于语言环境的转换不太熟悉,所以我可能在这里使用了错误的术语.这就是我想要发生的事情.
我想写一个函数
std::string changeLocale( const std::string& str, const std::locale& loc )
Run Code Online (Sandbox Code Playgroud)
如果我按如下方式调用此函数:
changeLocale( std::string( "1.01" ), std::locale( "french_france" ) )
Run Code Online (Sandbox Code Playgroud)
输出字符串将是"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;
}
Run Code Online (Sandbox Code Playgroud)
应该给你输出1,01(至少它在g ++上).您可能不得不摆弄语言环境规范,因为它非常特定于平台.