This question already has answers here:
Closed last year.
Using fscanf() vs. fgets() and sscanf()
(3个答案)
我有一个.txt文件,其中包含以下格式的移动对象数据
质量尺寸速度(x)速度(y)速度(z)等
此外,这个文件包含一些由字符表示的背景信息,因此
1000米
C 500
我一直在尝试编写代码,根据实际情况读取和排序数据(因此M存储在一个变量中,C存储在另一个变量中,对象的数据存储在正确的数组中)。
目前,我的代码分割错误时,我编译它。我试着用fgets,fscanf,gets和其他任何我能用的方法重新编写它,但是什么都没用。
while(fgets(data, 50, file))
{
    if (data[0] == "M")
    {
        M = data[1];
    }
    else
    {
        fscanf(data,
            "%lf %lf %lf %lf %lf",
            obj_stat[0],
            obj_stat[1],
            obj_stat[2],
            obj_stat[3],
            obj_stat[4],
            obj_stat[5]);
    }
}


int fclose(univ);

最佳答案

我在这里做些猜测,因为你的代码不完整。但您试图对似乎是字符串的内容使用fscanf。这是一个错误。
您的fscanf()还有5个格式说明符,但您传递的是6个参数。在任何情况下你都忘了带上他们的地址。
你对待M线的方式也不正确。在这两种情况下都应该使用&

关于c - C读取行并排序数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52250358/

10-11 01:50
查看更多