C-sscanf故障

C-sscanf故障,c,locale,scanf,C,Locale,Scanf,我对sscanf和解析浮动有问题。问题是我试图从文本文件加载浮点数据,但它在Linux上的不同语言环境下的行为异常。这似乎取决于操作系统的小数点设置(、或),在我加载的文件中,它始终是小数点 所以代码是这样的: sscanf(line[i],"%f %f %f %f %f",&floatbuffer[0],&floatbuffer[1], &floatbuffer[2], &floatbuffer[3], &floatbuffer[4]); 但它不适用于

我对sscanf和解析浮动有问题。问题是我试图从文本文件加载浮点数据,但它在Linux上的不同语言环境下的行为异常。这似乎取决于操作系统的小数点设置(、或),在我加载的文件中,它始终是小数点

所以代码是这样的:

sscanf(line[i],"%f %f %f %f %f",&floatbuffer[0],&floatbuffer[1], &floatbuffer[2], &floatbuffer[3], &floatbuffer[4]);
但它不适用于使用逗号(,)作为小数点的区域设置,例如pl_pl。如何解决此问题?

您是否尝试过:

#include <locale.h>

setlocale(LC_NUMERIC,"C");
#包括
设置语言环境(LC_数字,“C”);

您可以读/写二进制数据。
但要注意可移植性。

那么您可能会面临不同的问题,因为我测试了这一点,以使其既能与
printf()
一起工作,又能与
sscanf()一起工作。
。可以尝试区域设置
“POSIX”
,或其他已安装的区域设置(通过运行
locale-a检查已安装的区域设置)