C语言中从txt中读取数据到结构体
时间: 2024-10-23 16:05:14 浏览: 8
在C语言中,从TXT文件读取数据到结构体通常涉及以下几个步骤[^2]:
1. 定义结构体:首先,定义一个结构体来表示文件中的数据类型,如`trainFile`结构体,包含了列车信息的各项字段。
```c
struct trainFile {
char trainid[20];
char firststand[20];
char middlestand[20];
char finalstand[20];
char time_day[20];
char time_hour[20];
int prize;
int totalzw;
int freezw;
};
```
2. 打开文件:使用标准库函数`fopen()`打开文件,指定文件路径和模式(通常是"r"以读模式)。
```c
FILE *file = fopen("train_data.txt", "r");
if (file == NULL) {
printf("Error opening file.\n");
return;
}
```
3. 读取文件:使用`fscanf()`或`fgets()`逐行读取文件内容,然后解析每一行分配给结构体的相应字段。
```c
struct trainFile data[100]; // 假设最多有100条记录
int i = 0;
while (!feof(file)) {
if (fscanf(file, "%s %s %s %s %s %s %d %d %d",
&data[i].trainid, &data[i].firststand,
&data[i].middlestand, &data[i].finalstand,
&data[i].time_day, &data[i].time_hour,
&data[i].prize, &data[i].totalzw, &data[i].freezw) != EOF) {
i++;
} else {
break; // 或者添加错误处理
}
}
fclose(file);
```
4. 处理数据:读取完成后,`i`会存储实际读取到的数据项数量。现在你可以遍历`data`数组来访问这些结构体数据。
请注意,这个示例假设文件的格式匹配结构体的字段顺序。如果文件格式不固定,可能需要额外的解析逻辑。
阅读全文