C语言从文本文件读取数据到结构体数组中的问题
答案:1 悬赏:30
解决时间 2021-02-10 10:41
- 提问者网友:追忆成伤
- 2021-02-09 21:11
C语言从文本文件读取数据到结构体数组中的问题
最佳答案
- 二级知识专家网友:湫止没有不同
- 2021-02-09 21:44
关键问题是用 逗号分隔的 字符串 ,不能用 逗号格式 这样分开地读出来。
要用 "%[^,],%[^,],%f" 格式 才行。
另外 读参数用 &temp[n].mark 才行,你漏了 &.
--------
你先用下面程序读2行,
01010101,ABABCEVVZ,96.0
020202,EFGWE,56.0
试验成功再读全部。
#include<stdio.h>
#include<math.h>
struct student
{
char no[9];
char name[10];
float mark;
};
typedef struct student STU;
STU *temp;
int main(){
int n;
FILE *fp=fopen("student.txt","r");
temp=(STU *)malloc(100 * sizeof(STU));
for (n=0;n<2;n++){
fscanf(fp,"%[^,],%[^,],%f",temp[n].no,temp[n].name, &temp[n].mark);
printf("%s %s %f\n",temp[n].no,temp[n].name,temp[n].mark);
}
fclose(fp);
}
--
读完的控制用 if (fscanf(...)==EOF) break;
要用 "%[^,],%[^,],%f" 格式 才行。
另外 读参数用 &temp[n].mark 才行,你漏了 &.
--------
你先用下面程序读2行,
01010101,ABABCEVVZ,96.0
020202,EFGWE,56.0
试验成功再读全部。
#include<stdio.h>
#include<math.h>
struct student
{
char no[9];
char name[10];
float mark;
};
typedef struct student STU;
STU *temp;
int main(){
int n;
FILE *fp=fopen("student.txt","r");
temp=(STU *)malloc(100 * sizeof(STU));
for (n=0;n<2;n++){
fscanf(fp,"%[^,],%[^,],%f",temp[n].no,temp[n].name, &temp[n].mark);
printf("%s %s %f\n",temp[n].no,temp[n].name,temp[n].mark);
}
fclose(fp);
}
--
读完的控制用 if (fscanf(...)==EOF) break;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯