C语言编写:从data.txt文件中逐行读入数据存到结构体数组s[i]中的实现方法
时间: 2024-02-16 20:00:51 浏览: 87
C语言从txt文件中逐行读入数据存到数组中的实现方法
5星 · 资源好评率100%
可以使用C语言的文件操作函数来实现从data.txt文件中逐行读入数据存到结构体数组s[i]中的功能。具体实现方法如下:
1. 定义结构体类型和结构体数组:
```
typedef struct {
int id;
char name[20];
int score;
} Student;
Student s[100]; // 最多存放100个学生的信息
```
2. 打开文件并逐行读取数据:
```
FILE *fp;
char line[50]; // 假设每行数据最多包含50个字符
fp = fopen("data.txt", "r"); // 打开文件
if (fp == NULL) {
printf("Failed to open file\n");
return -1;
}
int i = 0;
while (fgets(line, sizeof(line), fp) != NULL) {
// 读取一行数据到line数组中
sscanf(line, "%d %s %d", &s[i].id, s[i].name, &s[i].score); // 解析数据并存入结构体数组
i++;
}
fclose(fp); // 关闭文件
```
3. 解析每行数据并存入结构体数组:
上面的代码中使用了sscanf函数来解析每行数据,它的用法类似于scanf函数,可以根据指定的格式字符串从字符串中读取数据。假设每行数据格式为"id name score",则格式字符串为"%d %s %d",其中"%d"表示读取整数,"%s"表示读取字符串,"%d"表示再次读取整数。
这样就可以将从data.txt文件中读取到的数据存储到结构体数组中了。
阅读全文