首页 > 解决方案 > 在c中将文件输入读入结构数组的简单方法?

问题描述

我正在学习 C,我很难理解如何将数据传递到结构数组并打印它。这是我到目前为止所拥有的:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct info
{
    int num1;
    char *name;
    int num2;
    int num3;
    int num4;
} info;

info *create_array(int num_group)
{
    info *data = calloc(num_group, sizeof(info));

    return data;
}

int main(void)
{
    FILE *ifp;
    info *data;

    int num_group;
    int i;

    ifp = fopen("input.txt", "r");
    fscanf(ifp, "%d", &num_group);
    printf("%d", num_group);

    data = create_array(num_group);

    for (i = 0; i < num_group; i++)
    {
        fscanf(ifp, "%d %s %d %d %d", &data->num1, &data->name, &data->num2, &data->num3, &data->num4);
    }

    for (i = 0; i < num_group; i++)
    {
        printf("%d %s %d %d %d", data->num1, data->name, data->num2, data->num3, data->num4);
    }
}

示例输入:我希望它打印完全相同。第一个数字决定了我有多少组

4
4 string1 2 3 4
3 string2 5 8 9
1 string3 6 8 5
65 string4 65 87 55 

奖励:如果你能指导我如何使用第一列从最低到最高排序,那就太棒了。

标签: c

解决方案


推荐阅读