说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何把文件中的数据读取并存入结构体中 如何把#号前后的数据保存在结构何中啊

编辑:说三道四文库 发布时间:2018-04-24 02:37
HTML文档下载 WORD文档下载 PDF文档下载
在文件中的格式(1.txt)如:
123#吃饭
234#睡觉
345#游戏

typedef struct abc
{
   int num;
   char ch[20];
}abc;
假设文件中有五百行数据,
abc bcd[500];
如何把文件中的数据读取并保存在这个结构体中。。麻烦大家告诉我一下。。谢谢了!~急用!~!~ 
 
具体实现的代码。。谢谢了!~!~
写一个解析字符串的函数,用来吧两个串分开。左侧atoi,右侧strcpy。

或者,先读一个整数,再读一个字符丢弃,最后读一个末尾是回车的字符串。
abc bcd[500]; 
int i;
FILE fp=fopen("in.txt","r");
for(i=0;i<500;i++)
    fscanf(fp,"%d#%s",&bcd[i].num,bcd[i].ch);
fclose(fp);
ls的方法应该可行。。直接在读入的过程中用#区分数据
引用 2 楼 liao05050075 的回复:
abc bcd[500]; 
int i; 
FILE fp=fopen("in.txt","r"); 
for(i=0;i <500;i++) 
    fscanf(fp,"%d#%s",&bcd[i].num,bcd[i].ch); 
fclose(fp);


谢谢了。。。但是如果  是0123#睡觉   呢。前面的0就读不出来了啊....
这样该怎么改啊。。
ps:
1、FILE * fp=fopen("in.txt","r"); 
2、判断下是否正确打开
3、读的过程中最好是在为读到结尾的情况下,文件中的数据不一定够500个。。。
引用 4 楼 zhujianbo613 的回复:
引用 2 楼 liao05050075 的回复:
abc bcd[500]; 
int i; 
FILE fp=fopen("in.txt","r"); 
for(i=0;i <500;i++) 
    fscanf(fp,"%d#%s",&bcd[i].num,bcd[i].ch); 
fclose(fp); 



谢谢了。。。但是如果  是0123#睡觉  呢。前面的0就读不出来了啊.... 
这样该怎么改啊。。

lz,你定义的num的类型是int型的,前面第一个数字不可能为0的。。。
谢谢6楼的了。。。这点给忘了。。万分感谢。。。。
分不多。。。实在是感谢了。。。。我会给你们分的。。希望你们不要介意好吧。。我分不多。。
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘