| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 664 人关注过本帖
标题:读文件出乱码求解~~
只看楼主 加入收藏
翼碎
Rank: 1
等 级:新手上路
帖 子:23
专家分:7
注 册:2012-9-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
读文件出乱码求解~~
一个文件里存放了以下信息:
           01  李江    21
           02  刘唐    23
           03  张军    19
           04  王娜    19

我建了一个结构体,
struct student
{
    char num[5];
    char name[10];
    char sex[4];
    int age;
};

不用链表的话,想用下面的语句直接把数据读出来,但是总是会出来一堆额外的乱码,请问各位大神是什么原因啊?怎么修改啊?
while(!feof(fp))
{
    if(fread(&stu,sizeof(struct student),1,fp)<1)break;
    printf("%s%s%s%d\n",stu.num,stu.name,stu.sex,stu.age);
}
搜索更多相关主题的帖子: 张军 信息 王娜 结构体 
2012-09-19 22:47
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:5 
非字符行的可能就是乱码,因为从文件里读出来是字符型的,你直接打出成其他内型,超过可识别aci范围就打出你不认识的,所以这儿应该处理下
2012-09-19 23:49
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:15 
fp = fopen("FileName", "r");
while(!feof(fp))
{
    if(fscanf("%s%s%s%d", &stu.num, &stu.name, &stu.sex, &stu.age) != 4) break;
    printf("%s%s%s%d\n",stu.num,stu.name,stu.sex,stu.age);
}

My life is brilliant
2012-09-20 00:19
翼碎
Rank: 1
等 级:新手上路
帖 子:23
专家分:7
注 册:2012-9-5
收藏
得分:0 
回复 3楼 lz1091914999
bingo,但是你的fscanf里头少了个参数,文件指针fp
2012-09-20 09:54
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 4楼 翼碎
额,你明白为什么要用fscanf而不用fread了吗?

My life is brilliant
2012-09-20 14:28
快速回复:读文件出乱码求解~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011936 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved