用循环读取文件中数据,代码如下:
while(!feof(pfile))
{
int a=0;
a=fread(&leng,sizeof(int),1,pfile);
printf("%d \n",a);
a=fread(temp->name,sizeof(char),leng,pfile);
printf("%d \n",a);
temp->name[leng]='\0';
a=fread(&leng,sizeof(int),1,pfile);
printf("%d \n",a);
a=fread(temp->first_name,sizeof(char),leng,pfile);
printf("%d \n",a);
temp->first_name[leng]='\0';
a=fread(&temp->phone_number,sizeof(long),1,pfile);
printf("%d \n",a);
printf("%s %s的电话号码为%ld\n",temp->name,temp->first_name,temp->phone_number);
}
求问程序运行后为什么没到文件尾,fread函数就返回0,且没有读取任何数据了?
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

首页/
已采纳
fread函数问题,求助给位大神
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
1条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
oyljerry 2015-10-19 05:18关注读取的文件打开了吗,一开始读取出什么内容没
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2022-10-13 07:17回答 4 已采纳 while ((fp = fopen("people.dat", "w+")) != NULL); 这行后面的分号删除printf("号码已经存在,不能记录.\n"); break;光break也不行
- 2022-04-21 03:29回答 6 已采纳 老程序员给你举个例子吧: //二进制方式打开文件 fp = fopen("lining.txt","rb"); if(NULL == fp) {
- 2022-12-24 16:55回答 3 已采纳 在保存和加载时使用的是二进制文件,这是因为在 Save 函数中使用了 fwrite,而在 Load 函数中使用了 fread。 在这种情况下,应该将文件以二进制格式打开,而不是使用文本模式。在 Sav
- 2021-05-19 12:35最近一直忙于睡觉的博客 C语言fread读取二进制文件时,读取结果全都是零,编译运行都没问题,但是就是结果显示不对,猜想可能有几个原因:1. 大小端没处理好,设置了程序判断机器为little endian,但是,身为小白的我不知大小端转换怎么换,...
- 2023-01-16 08:07回答 2 已采纳 虽然i是fread的返回值但你没马上打印(此时立刻打印就是25),你是在后面for中对i重新赋值为0了且遍历了5次直到i=5跳出for循环,最后打印的当然是跳出for时刻的i了。而且你这个程序原本写的
- 2021-12-18 14:29回答 1 已采纳 结构体里定义的编号 char NO[10]; 是字符串,在addDV()函数里,输入并写入文件时,用的 %d 控制符,且变量前多了 ’&‘ 符号,修改如下:应修改为: printf("请输入DVD的名
- 2023-03-03 04:23回答 2 已采纳 void outputstu(int index){ for(int i=0;i<index;i++){ printf("%d %s %lf",stu[index].i
- 2021-05-19 04:35学习中的小包的博客 C语言fread读取二进制文件时,读取结果全都是零,编译运行都没问题,但是就是结果显示不对,猜想可能有几个原因:1. 大小端没处理好,设置了程序判断机器为little endian,但是,身为小白的我不知大小端转换怎么换,...
- 2022-05-14 13:19回答 1 已采纳 最后一位要留出来的,必须以终止符’\0'作为边界。比如字符素组长度是也是不计算'\0';char chs[7] = {'a', 'c', '0', 'z', '3','d'}; -----长度为6
- 2015-12-24 01:43回答 3 已采纳 你这个fread只能读一个学生的信息
- 2017-08-29 22:03回答 1 已采纳 fread是一个函数。从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。 函数原型 size_t fre
- 2018-05-28 03:49qq_41532540的博客 // C语言中调用dos函数颜色 printf("\n"); printf (" * * ****** * **** **** * * ****** \n"); printf (" * * * * * * * * * * * * * \n"); printf (" * * * * ***** * * * * * * * * ****** \n"); ...
- 2021-05-20 19:45weixin_39761422的博客 C语言fread读取二进制文件时,读取结果全都是零,编译运行都没问题,但是就是结果显示不对,猜想可能有几个原因:1. 大小端没处理好,设置了程序判断机器为little endian,但是,身为小白的我不知大小端转换怎么换,...
- 2021-05-19 07:05weixin_39980082的博客 创建了一个CREATE_SUSPENDED的傀儡进程,用幕后进程替换了傀儡进程之后报错0xc0000005,弄了好几天也没弄懂,我裂开了,哪位大侠路过帮帮忙WIN7 x64系统,vs2017 x86编译器,两个进程都是32位进程。typedef NTSYSAPI...
- 2018-06-15 02:53qq_42393428的博客 while ((fread(&information,sizeof(struct medicine),1,fp))==1) { if ((strcmp(amend_bnum,information.client_bnum))==0) { found='y'; break; } } if (found=='y') ...
- 2016-11-14 02:42拥抱_未来的博客 /* 置换函数P */ int P_Table[32] = {15,6,19,20,28,11,27,16, 0,14,22,25,4,17,30,9, 1,7,23,13,31,26,2,8, 18,12,29,5,21,10,3,24 }; /* S盒 */ int S[8][4][16] =/* S1 */ { { {14,4...
- 2023-03-06 03:16爱吃油淋鸡的莫何的博客 打印结果如下图使用cJSON_Print(pt_x)打印出来的值是在正确的.json文件中的值,但是使用pt_x->valueint取出来的值不知道什么原因总是0,查了很多资料,感觉代码的写法上都是没有问题的,一直没找到原因,求助大神!...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司