c语言将文本文件读取到结构体中

在c语言中怎么将一个文本文件,如“a.txt”读取到结构体中,文本文件中一行的各个数据要用什么符号来分隔(空格?逗号?分号?还是回车?)?请说得详细点,我是初学者,最好举... 在c语言中怎么将一个文本文件,如“a.txt”读取到结构体中,文本文件中一行的各个数据要用什么符号来分隔(空格?逗号?分号?还是回车?)?请说得详细点,我是初学者,最好举一个例子!
如果回答好了,我会追加20分,不然我宁愿关闭问题!
看不是很懂
我就是需要fread的
文件中的信息是直接输入的,不是通过程序输入的
不过,本诚信的原则,还是给你分吧
希望你在得到分后再帮我把问题解决完满
谢谢了!
展开
 我来答
csupxh
2007-07-13 · TA获得超过169个赞
知道答主
回答量:75
采纳率:0%
帮助的人:84万
展开全部
呵呵,满意的话要给我追加分哦!那两个例子都是我自己给你写的。
1.
#include"stdio.h"
#include"stdlib.h"
main()
{
FILE *fp;
char s[100];
if((fp=fopen("f:\\score.txt","a"))==NULL)
{
printf("Can't open destination file!\n");
exit(0);
}
printf("Please input your name:");
gets(s);
fprintf(fp,"Name:%s\t\tScore:%d\n",s,rand()%100);
fclose(fp);
printf("Your score is saved!\n");
}

2.
#include"stdio.h"
#define N 20
struct score
{
char s[20];
int a;
}d[N];
main()
{
FILE *fp;
int i,no=0;
if((fp=fopen("f:\\score.txt","r"))==NULL)
{
printf("Can't open destination file!\n");
exit(0);
}
for(i=0;i<N&&!feof(fp);i++)
{
fscanf(fp,"Name:%s\t\tScore:%d\n",d[i].s,&d[i].a);
no++;
}
fclose(fp);
for(i=0;i<no&&d[i].s[0];i++)
printf("Name:%s\t\tScore:%d\n",d[i].s,d[i].a);
}

在文件中分隔用什么随便你,但是当你用什么分隔后,在用fscanf函数的时候也要在格式控制中加入,如我用第一个程序保存了些数据在f:\\score.txt中:
Name:ytyh Score:1
Name:tytuy Score:41
Name:hjhj Score:41
由于我在第一个程序中用的是fprintf(fp,"Name:%s\t\tScore:%d\n",s,rand()%100);故在第二个程序中就心须用fscanf(fp,"Name:%s\t\tScore:%d\n",d[i].s,&d[i].a);
在ASCII文件中我只知道这样,但在二进制文件中就没有这么麻烦,直接用fread就行。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式