【问题标题】:C read lines and sort data [duplicate]C读取行并对数据进行排序[重复]
【发布时间】:2018-09-10 02:33:24
【问题描述】:

我有一个 .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);

【问题讨论】:

  • fscanffgets + sscanf替代品

标签: c scanf


【解决方案1】:

我将在这里进行一些猜测,因为您的代码不完整。但是您正在尝试在看似字符串的内容上使用fscanf。这是一个错误。

您的 fscanf() 也有 5 个格式说明符,但您传递了六个参数。而且您每次都忘记用& 填写他们的地址。

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

【讨论】:

    猜你喜欢
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 2012-10-22
    • 2013-10-15
    • 2020-07-18
    • 1970-01-01
    相关资源
    最近更新 更多