【发布时间】:2010-01-30 16:47:13
【问题描述】:
我的程序的用户报告了读取我的程序编写的设置文件的问题。我查看了有问题的设置文件,而不是使用句点“.”的小数点,而是使用逗号“,”。
我假设这与语言环境有关?
文件 i/o 使用 fprintf 和 mpfr_out_str 进行文件输出,getline 与 atol、atof、mpfr_set_str 等组合用于文件输入。
我在这里做什么?即使机器的语言环境想要使用逗号,我是否应该强制我的程序始终使用句点?如果是这样,我从哪里开始?
编辑:我刚刚注意到在指定要在命令行上使用的设置文件而不是通过 GUI 加载它时会出现此问题 - 这是否表明 OP 的机器或我的代码中存在问题?
【问题讨论】:
-
感觉mpfr不负责浮点打印输出的本地化...
-
是的,我也有这种感觉,因为无论使用 mpfr 还是 printf 例程,所有浮点值输出都是相同的。
-
如果在 export LC_ALL=C 之后运行程序会发生什么?
-
我无法亲自对此进行测试,因为问题发生在用户的机器上。
标签: c internationalization floating-point locale