以下代码旨在从文件中读取 double 值并将它们放入数组中。很简单。
double arr[100];
int i = 0;
while(fscanf(fin, "%lf", &arr[i]) != EOF)
i++;
然而,当我打印数组时,我得到了奇怪的值。如果我将数组变量替换为常规 double 变量,并在前面提到的 while 循环中打印该变量的值,它会被正确打印。上述代码有什么问题?我尝试预先初始化数组中的所有值,当然,这也无济于事。
最佳答案
您可能需要在数组周围加上括号。例如,在代码中,您有“&arr[i]”。这与 (&arr)[i] 相同,表示获取偏移量为 i 的数组指针(指向指针的指针)的地址。这可能会将文字偏移几位,从而使输出看起来很古怪。
添加括号使其成为这样:“&(arr[i])”
double arr[100];
int i = 0;
while(fscanf(fin, "%lf", &(arr[i])) != EOF)
i++;
关于c - fscanf 读入双数组奇怪值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8018675/