要读取的文件:(数据之间以制表符分割)
定义结构体
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; //剩余位置
};
文件读取并存入结构体数组:文章来源:https://www.toymoban.com/news/detail-520494.html
struct trainFile readtrainFile(){
struct trainFile train[15];//创建train结构体
FILE *fp = fopen("trainFile.txt", "r");// 打开文件并且让fp指向文件
if (fp == NULL) {
fprintf(stderr, "文件打开失败.\n");
exit(EXIT_FAILURE);
}
char row[80];
char *token;
int i=0;
if(fgets(row, 80, fp) != NULL){
while (fgets(row, 80, fp) != NULL) {
sscanf(row,"%s%s%s%s%s%s%d%d%d",train[i].trainid,train[i].firststand,train[i].middlestand,train[i].finalstand,train[i].time_day,train[i].time_hour,&train[i].prize,&train[i].totalzw,&train[i].freezw);//把数据存入结构体数组
printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\n",train[i].trainid,train[i].firststand,train[i].middlestand,train[i].finalstand,train[i].time_day,train[i].time_hour,train[i].prize,train[i].totalzw,train[i].freezw);
i++;
}
}
fclose(fp);
return *train;
}
完整代码:文章来源地址https://www.toymoban.com/news/detail-520494.html
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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; //剩余位置
};
int main()
{
struct trainFile train[15];//创建train结构体
FILE *fp = fopen("trainFile.txt", "r");// 打开文件并且让fp指向文件
if (fp == NULL) {
fprintf(stderr, "文件打开失败.\n");
exit(EXIT_FAILURE);
}
char row[80];
char *token;
int i=0;
if(fgets(row, 80, fp) != NULL){
while (fgets(row, 80, fp) != NULL) {
sscanf(row,"%s%s%s%s%s%s%d%d%d",train[i].trainid,train[i].firststand,train[i].middlestand,train[i].finalstand,train[i].time_day,train[i].time_hour,&train[i].prize,&train[i].totalzw,&train[i].freezw);//把数据存入结构体数组
printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\n",train[i].trainid,train[i].firststand,train[i].middlestand,train[i].finalstand,train[i].time_day,train[i].time_hour,train[i].prize,train[i].totalzw,train[i].freezw);
i++;
}
}
fclose(fp);
return 0;
}
到了这里,关于C语言 读取TXT文件并存入结构体数组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!