C - sscanf的麻烦

时间:2012-05-09 18:47:46

标签: c locale scanf

我遇到了sscanf和解析浮点数的问题。问题是我正在尝试从文本文件加载浮点数据,但它在Linux上的不同语言环境中表现得很奇怪。它似乎取决于OS小数点设置(,或。),在文件I中加载它始终是小数点。

所以代码就像:

sscanf(line[i],"%f %f %f %f %f",&floatbuffer[0],&floatbuffer[1], &floatbuffer[2], &floatbuffer[3], &floatbuffer[4]);

但它不适用于使用逗号(,)作为小数点的语言环境,例如pl_PL。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

你试过了吗?

#include <locale.h>

setlocale(LC_NUMERIC,"C");

答案 1 :(得分:1)

您可以读取/写入二进制数据。
但要注意便携性。

相关问题