freadC语言中fread的一些疑问

fread  时间:2021-06-07  阅读:()

关于fread和fwrite的用法问题

这个肯定不可以的, 首先你的a数组的大小不是book而是应该*n; 然后这是结构体数组不是字符串数组,要一个个输。

还有我自己的疑问你的fread没写错么?不是fread(&a[k], sizeof(BOOK), 1, fp)么?传的不 是结构体的地址么?

fread的用法

fread(&a, 4, 1, fp); 此处不正确. 还是使用fscanf比较方便. 你要是使用fread的话,你首先得读取字符串,然后再把字符串转换成整数.因为你在文件中是以字符串形式存放的,而不是数字 可以

fread函数第三个参数的作用

fread(line, sizeof(char), 27, infile) fread(ori_file, sizeof(char), 35, file) 这里的27和35个元素个数的元素都是 char 就是说,你最多可以读取27和35个char字符到line和ori_file变量中 如果要读取100行,每行50个字符 可以用一个for循环,循环100次,每一次读50个字符: fread(str, sizeof(char), 50, file);

C语言中fread的一些疑问

L_o_o_n_i_e 回答得不怎么准确! 我帮你解释下: 首先介绍fread函数 功 能: 从一个流中读数据 函数原型: int fread(void *ptr, int size, int nitems, FILE *stream); 参 数:用于接收数据的地址(指针)(ptr) 单个元素的大小(size) :单位是字节而不是位,例如读取一个整数值就是4 元素个数(nitems) 提供数据的文件指针(stream) 返回值:成功读取的元素个数 由上面介绍知道fread函数的第一个参数是个指针变量,可以指向任意类型实参! 严归正传,对于你这里的问题, 你代码中的s是个结构体数组变量,跟普通数组变量一样,数组名本身就是个指针常量,所以在buffer位置写成s是没有问题的。

那么为什么你这里读会变乱码呢? 虽然你帖的代码并没有全,但从你说的读取是乱码, 我大概猜到在你用fwrite函数把数据写进文件的时候是以每次一个结构体大小(也就是仅仅是数组s的一个元素而已,也就对应一个下标而已)和一个数据块的方式写进文件里的。

所以当你用fread函数读取的时候,假设你在buffer位置写成s,本身语法是没有问题的,但是就相当于你把数组s的仅一个元素的数据大小当成所有s的数据存到s中,也就是没有对应起来,所以显示会是乱码。

所以你可以有两种方式实现: 方式一: 在写的时候按一次以s的一个元素的数据大小作为一个数据块依次写进文件,然后读取时候也以同样方式读出来。

代码可以这么写: 假设s的大小为:SIZE_S for(count = 0; count < SIZE_S; count++) fwrite(&s[count], sizeof(struct student), 1, fp); 然后读取时: for(count = 0; count < SIZE_S; count++) fread(&s[count], sizeof(struct student), 1, fp); 方式二: 以整个数组s的数据大小作为一个数据块一次写进文件,然后读取时也同样全部读出来,最后可以以循环的方式打印出来。

代码实现如下: 假设s的大小为:SIZE_S fwrite(s, SIZE_S * sizeof(struct student), 1, fp); 然后读取时: fread(s, SIZE_S * sizeof(struct student), 1, fp); 最后打印: for(count = 0; count < SIZE_S; count++) fread(&s[count], sizeof(struct student), 1, fp); 明白了记得给哥哥顶下~~~ ^_^

RAKsmart含站群服务器/10G带宽不限流量首月半价

RAKsmart 商家估摸着前段时间服务器囤货较多,这两个月的促销活动好像有点针对独立服务器。前面才整理到七月份的服务器活动在有一些配置上比上个月折扣力度是大很多,而且今天看到再来部分的服务器首月半价,一般这样的促销有可能是商家库存充裕。比如近期有一些服务商挖矿服务器销售不好,也都会采用这些策略,就好比电脑硬件最近也有下降。不管如何,我们选择服务器或者VPS主机要本着符合自己需求,如果业务不需要,...

香港 1核 1G 5M 22元/月 美国 1核 512M 15M 19.36元/月 轻云互联

轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。官方网站:点击进入广州轻云网络科技有限公司活动规则:用户购买任...

零途云:香港站群云服务器16IP220元/月,云服务器低至39元/月

零途云(Lingtuyun.com)新上了香港站群云服务器 – CN2精品线路,香港多ip站群云服务器16IP/5M带宽,4H4G仅220元/月,还有美国200g高防云服务器低至39元/月起。零途云是一家香港公司,主要产品香港cn2 gia线路、美国Cera线路云主机,美国CERA高防服务器,日本CN2直连服务器;同时提供香港多ip站群云服务器。即日起,购买香港/美国/日本云服务器享受9折优惠,新...

fread为你推荐
腾讯举报中心如何举报QQ号?网络审计网络审计和传统审计的范围有什么变化自定义表情qq自定义表情jstz谁有101网校的账号?腾讯技术腾讯是什么东西?什么是生态系统生态系统的功能有什么?审计平台什么是审计工具微信智能机器人微信群机器人是怎么实现的activitygroup请问在activitygroup中嵌入多个webview,切换时如何保持状态activitygroupAndroid中如何在ActivityGroup里面监听back按钮,使得可按要求实现哪个activity可返回,哪个不需要。。
yaokan永久域名经常更换 免费二级域名申请 中国万网虚拟主机 hawkhost pccw mach idc测评网 国外私服 godaddy支付宝 云图标 彩虹ip 免费私人服务器 腾讯总部在哪 中国电信测速器 德讯 免费蓝钻 万网注册 存储服务器 美国主机侦探 免费网站加速 更多