fwritec语言的fwrite函数和fread函数(两者都包含4个参数)的具体用法是怎样的?

fwrite  时间:2021-07-28  阅读:()

C语言 fread与fwrite(在线等)

你可以想像有一只“笔”在执行文件操作。

f = fopen ("C:\date","wb+"); 用读写方式打开了文件。

这时“笔”是在文件开头位置。

fwrite (a, sizeof(int), 1,f); 写进一个INT整数后,“笔”的位置移到了INT整数的后边。

fread (b, sizeof(int), 1,f); 这时去读“笔”位置开始的一个整数,是读不到a的。

它读的是a后边的那个整数。

建议,在 fwrite 和 fread 之间加进函数, fseek( f, 0, SEEK_SET ); 这个函数是将“笔”移动到文件的开始位置。

然后再 fread 试一试。

补充一下:你的 fread 函数调用方法写错了,应该用 b 的指针调用 fread( &b, sizeof(int), 1, f ); 如果有不明白的欢迎留言。

C语言 fwrite()和fprintf()的区别

当使用fwrite将一个int型数字65写入文本文件时,由于65对应的二进制数是1000001,十六进制数是0x41,存储的是以二进制的形式1000001.在notepad++中使用十六进制方式打开显示的是:0x0041,转换为十进制则为65,使用记事本打开这个文本文件后显示的是A,因为记事本程序默认为存储在文本文件中的数据都是ASCII码形式存储,它把65当做ASCII码翻译为字符A。

当使用fpintf将一个int型数字65写入文本文件时,将65每一位转换为ASCII码存储,6、5分别对应ASCII码54、53,存储的是ASCII码54、53.在notepad++中使用十六进制方式打开显示的是:3635,转换为十进制则为54、53,这正是数字6、5的ASCII码。

使用记事本打开这个文本文件时,记事本将存储在其中的54、53当做ASCII码翻译为字符6、5显示,我们看到的是便是字符65。

菜鸟求教 fread 和 fwrite 怎么用啊?

1.存储时是按照结构体大小存的话 你就可以直接按大小取出 例如 struct Date { int Day; int Month; int Year; }; struct Date *d1; d1.Day=18; d1.Month=4; d1.Year=2011; fwrite( d1,sizeof(Date), 1, fp); // fp是指向要保存到的文件的指针 struct Date *d2; fread( d2, sizeof(Date), 1, fp); //读取 2、fread和fscanf的区别 #include <stdio.h> int fread( void *buffer, size_t size, size_t num, FILE *stream ); 函数fread()读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. 函数的返回值是读取的内容数量... int fscanf( FILE *stream, const char *format, ... ); 函数fscanf()以scanf()的执行方式从给出的文件流中读取数据. fscanf()的返回值是事实上已赋值的变量的数,如果未进行任何分配时返回EOF. 3.fread的操作对象是根据你FILE fp=fopen();定义 FILE *fopen( const char *fname, const char *mode ); fopen()函数打开由fname(文件名)指定的文件, 并返回一个关联该文件的流.如果发生错误, fopen()返回NULL. mode(方式)是用于决定文件的用途(例如 用于输入,输出,等等) Mode(方式) 意义 "r" 打开一个用于读取的文本文件 "w" 创建一个用于写入的文本文件 "a" 附加到一个文本文件 "rb" 打开一个用于读取的二进制文件 "wb" 创建一个用于写入的二进制文件 "ab" 附加到一个二进制文件 "r+" 打开一个用于读/写的文本文件 "w+" 创建一个用于读/写的文本文件 "a+" 打开一个用于读/写的文本文件 "rb+" 打开一个用于读/写的二进制文件 "wb+" 创建一个用于读/写的二进制文件 "ab+" 打开一个用于读/写的二进制文件

fwrite fread和 fprintf fscanf 哪个经常用

要看在哪用。

fwrite fread读写二进制数据, fprintf fscanf读写格式化文本数据。

要说应用的广泛程度,那还是fwrite fread更广一些,因为计算机数据本质上都是二进制。

fwrite fread和其他函数合作,可以完成 fprintf fscanf能做的任何工作,但是后者却不能做前者能做的事。

成块读写函数fread和fwrite

1.函数功能 用来读写一个数据块。

2.一般调用形式 fread(buffer,size,count,fp); 如 fread(&结构数据, 结构大小, 1, fp); fwrite(buffer,size,count,fp); 如 fwrite(&结构数据, 结构大小, 1, fp); 3.说明 (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。

对fwrite来说,是要输出数据的地址。

(2)size:要读写的字节数; (3)count:要进行读写多少个size字节的数据项; (4)fp:文件型指针。

注意:读写结束要及时关闭流(fclose(fp)),如果没有关闭,则指针(FILE * fp)自动向后移动前一次读写的长度。

如果需要从文件的某个位置开始读写,在打开文件后,需要用fseek(fp, ldata, 0)函数移动指针位置,其中ldata为从文件开头移动的长度。

c语言的fwrite函数和fread函数(两者都包含4个参数)的具体用法是怎样的?

从键盘输入4个学生的有关数据,然后把它们转存到磁盘文件上去,接着把它们输出到终端。

#include <stdio.h> #define SIZE 4 struct student_type { char name[20]; int num; int age; char addr[15]; }stud[SIZE]; void save() { FILE * fp; int i; if ((fp = fopen("D:\stu_list.txt", "wb")) == NULL) { printf("cannot open file "); return; } for (i = 0; i < SIZE; i++) { if(fwrite(&stud[i], sizeof(struct student_type), 1, fp) != 1) printf("file write error. "); } fclose(fp); } void main() { printf("sizeof(struct stud) = %d ", sizeof(student_type)); printf("Please input the 4 student information,including name,num,age,address "); int i; for(i = 0; i < SIZE; i++) scanf("%s%d%d%s", stud[i].name, &stud[i].num, &stud[i].age, stud[i].addr); save(); printf(" The information of the 4 students is: "); FILE* fp; fp = fopen("D:\stu_list.txt", "rb"); for (i = 0; i < SIZE; i++) { fread(&stud[i], sizeof(struct student_type), 1, fp); printf("%-10s %4d %4d %-15s ", stud[i].name, stud[i].num, stud[i].age, stud[i].addr); } fclose(fp); }

totyun:香港cn2 vps,5折优惠,$6/月,10Mbps带宽,不限流量,2G内存/2核/20g+50g

totyun,新公司,主要运作香港vps、日本vps业务,接入cn2网络,不限制流量!VPS基于KVM虚拟,采用系统盘和数据盘分离,从4G内存开始支持Windows系统...大家注意下,网络分“Premium China”、“Global”,由于站长尚未测试,所以也还不清楚情况,有喜欢吃螃蟹的尝试过不妨告诉下站长。官方网站:https://totyun.com一次性5折优惠码:X4QTYVNB3P...

IntoVPS:按小时计费KVM月费5美元起($0.0075/小时),6个机房可选

IntoVPS是成立于2004年的Hosterion SRL旗下于2009年推出的无管理型VPS主机品牌,商家提供基于OpenStack构建的VPS产品,支持小时计费是他的一大特色,VPS可选数据中心包括美国弗里蒙特、达拉斯、英国伦敦、荷兰和罗马尼亚等6个地区机房。商家VPS主机基于KVM架构,最低每小时0.0075美元起($5/月)。下面列出几款VPS主机配置信息。CPU:1core内存:2GB...

搬瓦工VPS:新增荷兰机房“联通”线路的VPS,10Gbps带宽,可在美国cn2gia、日本软银、荷兰“联通”之间随意切换

搬瓦工今天正式对外开卖荷兰阿姆斯特丹机房走联通AS9929高端线路的VPS,官方标注为“NL - China Unicom Amsterdam(ENUL_9)”,三网都走联通高端网络,即使是在欧洲,国内访问也就是飞快。搬瓦工的依旧是10Gbps带宽,可以在美国cn2 gia、日本软银与荷兰AS9929之间免费切换。官方网站:https://bwh81.net优惠码:BWH3HYATVBJW,节约6...

fwrite为你推荐
软件开发的周期软件项目周期是什么java学习思维导图怎样使用思维导图软件智能机刷机软件安卓手机刷机,用什么软件最简单?呼叫中心搭建如何建立适合自己的呼叫中心客服系统方案营销呼叫中心系统的特点及解决方案?si1encesin90等于多少为什么prepare的用法●请问大家关于prepare和prepare for的用法和区别~~~!!~~~~罗振宇2017跨年演讲“时间的朋友”跨年演讲办了多少场,分别是什么主题?自建git服务器如何在mac系统下搭建git服务器湖北健康码转码申请怎么弄纸质健康码?
国外虚拟主机 大庆服务器租用 themeforest wdcp 165邮箱 刀片式服务器 双十一秒杀 phpmyadmin配置 福建铁通 新世界服务器 安徽双线服务器 德讯 atom处理器 ssl加速 网络速度 闪讯网 聚惠网 腾讯云平台 japanese50m咸熟 cdn加速 更多