-1

我正在尝试使用 fscanf 函数从文件中获取双精度值。我正在运行以下代码:这是从我的代码中提取的:

double some_double;
fscanf(file_name,"%lf", &some_double);

例如。文件内容为“10.5”

在调试模式下,我看到这是读取值 == 10.0000

它是什么:fscanf 函数的错误实现,还是我的错误?如果是第二个变体 - 请建议如何修复它?请谢谢

编辑

#define nameOfFile "infoOnObjects.txt"
#define stop _asm nop
FILE* file = fopen(nameOfFile, "r");
if (file == NULL)
    throw "error";
double num;
int n = fscanf(file,"%lf", &num);
4

1 回答 1

3

检查您的十进制除数的语言环境符号是否是点“。”,而不是逗号“,”。此问题在某些平台上有效(例如,Ubuntu gcc;而在 Windows mingw 上则无关紧要)。

于 2012-06-26T11:47:40.233 回答