我的程序的用户报告了读取由我的程序编写的设置文件的问题。我查看了有问题的设置文件,而不是使用句点“.
”的小数点,而是使用逗号“,
”。
我假设这与语言环境有关?
文件输入/输出使用 fprintf
和 mpfr_out_str
进行文件输出,getline
结合 atol
, atof
、mpfr_set_str
等文件输入。
我在这里做什么?即使机器的语言环境想要使用逗号,我是否应该强制我的程序始终使用句点?如果是这样,我从哪里开始?
编辑:我刚刚注意到当指定要在命令行上使用的设置文件而不是通过 GUI 加载它时会出现此问题 - 这是否表明 OP 的机器或我的代码中存在问题?
最佳答案
你调用setlocale
了吗?如果没有,我会建议通过 setlocale( LC_ALL, "C")
.
另一种选择是使用特定于语言环境的格式化函数(在 MSVC 中以 _l
为后缀)并通过 _create_locale(LC_ALL, "C")
显式创建 C 语言环境>.
关于c - MPFR、printf、小数位、语言环境、文件 i/o 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2168597/