【问题标题】:How read and use a file.txt in C如何在 C 中读取和使用 file.txt
【发布时间】:2020-09-13 10:24:24
【问题描述】:

我有一个包含与此类似的文本的文本文件:

01234 Johnathan Doe 1 RG
12345 简·多伊 3 OC

我的问题是:如何定义一个可以包含文件中包含的信息的结构,使用一个数组(结构)来存储从文件中读取的数据? 当然文件是连续给我的:徽章,姓名,姓氏,年份和身份依次排列,彼此隔开一个空格。除了已经存在的库之外,我也无法添加其他库。

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

struct student {
    int *badge;
    char *name;
    char *surname;
    int *year;
    char *status;
};
typedef struct student Student;

int main(){
    
}

【问题讨论】:

  • 你有很多不需要是指针的指针。事实上,我认为结构中的所有指针应该是指针,而是非指针值和数组。
  • 至于从文件中读取,任何体面的书籍、教程或课程都应该教你如何做到这一点。我的建议是您学习fgetssscanf 函数,当然还有fopenfclose。和循环。

标签: c struct fopen


【解决方案1】:

结构体做得很好,除了您可以将数字存储为整数,无需将它们作为指针。

你可能想看看 fopen: opens a file。

还有 fscanf,它从文件中读入。

fscanf 接受类型说明符,因此,在这种情况下,它将是 “%i, %s, %s, %i, %s”,那么接下来的参数将是变量,按照您要存储读取内容的顺序排列。

所以对于上述情况有局部变量。并将 fscanf 包装在一个 while 循环中,检查它的返回值(是否发生 EOF 或错误)。

在循环中,您可以创建结构并使用各自的局部变量初始化成员。该结构将代表一条线。然后将结构存储在一个数组中,因此该数组将代表文件,该数组将由 while 循环填充。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    相关资源
    最近更新 更多