C读取行并排序数据

时间:2018-09-10 02:33:25

标签: c scanf

我有一个.txt文件,其中包含以下格式的移动对象上的数据

  

质量尺寸速度(x)速度(y)速度(z)等

此外,此文件包含一些用字符表示的背景信息,所以

  

M 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);

1 个答案:

答案 0 :(得分:2)

由于您的代码不完整,我将在这里进行一些猜测。但是,您正在尝试在似乎是字符串的地方使用fscanf。那是一个错误。

您的fscanf()也有5个格式说明符,但是您要传递六个参数。而且您忘记了在每种情况下都用&带走他们的地址。

您对待M线的方式也不正确。两种情况下都应使用sscanf()