首先,这必须用C和UNIX标准C函数(由于项目约束(真正解决。因此,C++库或替代库不在问题的范围之内。
我知道如何使用 setlocale 设置默认用户区域设置,以及设置标准 C/POSIX 语言环境。
但是,我的情况是文件指定的小数分隔符,因此我希望我的程序暂时更改小数分隔符。
LC_NUMERIC需要一个区域设置名称...但我不想给它一个区域设置名称,而是直接给它一个分隔符。
如何做到这一点?
好吧,恐怕您不会喜欢解决方案:)
首先,由于您使用的是setlocale
因此必须提供区域设置名称。因此,应该有一个区域设置LC_NUMERIC其中包含您在程序执行时定义的属性。因此,您需要定义一个新的区域设置。您可以使用 localedef 定义它 您可以使用此文档作为制作和使用新语言环境的指南,并使用此站点来获取源文件,您可以将其用作自定义区域设置定义的模板。