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); }

LOCVPS全场8折,香港云地/邦联VPS带宽升级不加价

LOCVPS发布了7月份促销信息,全场VPS主机8折优惠码,续费同价,同时香港云地/邦联机房带宽免费升级不加价,原来3M升级至6M,2GB内存套餐优惠后每月44元起。这是成立较久的一家国人VPS服务商,提供美国洛杉矶(MC/C3)、和中国香港(邦联、沙田电信、大埔)、日本(东京、大阪)、新加坡、德国和荷兰等机房VPS主机,基于XEN或者KVM虚拟架构,均选择国内访问线路不错的机房,适合建站和远程办...

DediPath($1.40),OpenVZ架构 1GB内存

DediPath 商家成立时间也不过三五年,商家提供的云服务器产品有包括KVM和OPENVZ架构的VPS主机。翻看前面的文章有几次提到这个商家其中机房还是比较多的。其实对于OPENVZ架构的VPS主机以前我们是遇到比较多,只不过这几年很多商家都陆续的全部用KVM和XEN架构替代。这次DediPath商家有基于OPENVZ架构提供低价的VPS主机。这次四折的促销活动不包括512MB内存方案。第一、D...

licloud:$39/月,香港物理服务器,30M带宽,e3-1230v3/16G内存/1T硬盘

licloud官方消息:当前对香港机房的接近100台物理机(香港服务器)进行打折处理,30Mbps带宽,低至不到40美元/月,速度快,性价比高,跑绝大多数项目都是绰绰有余了。该款香港服务器自带启动、关闭、一键重装功能,正常工作日内30~60分钟交货(不包括非工作日)。 官方网站:https://licloud.io 特价香港物理服务器 CPU:e3-1230v2(4核心、8线程、3.3GH...

fwrite为你推荐
android半透明android控件怎么做到半透明?达内学院达内IT培训集团怎么样?发博客什么是发博文安卓性能测试工具谁能介绍几个测试手机性能的软件?圣诞节网页制作圣诞节贺卡制作微软将停止支持32位Win10系统你使用的Windows10即将终止服务是什么意思?vs2005快捷键求eclipse3.3和VS2005的快捷键linux操作系统好吗linux好用不?云图好看吗电影云图好看吗?音响解码音响功放:源码输出和解码输出有什么区别
免费域名 万网域名空间 工信部域名备案查询 域名服务dns的主要功能为 仿牌空间 哈喽图床 好看的桌面背景图 发包服务器 gg广告 上海域名 韩国名字大全 谁的qq空间最好看 网站木马检测工具 双11秒杀 爱奇艺vip免费试用7天 网游服务器 便宜空间 免费的asp空间 免费ftp 帽子云排名 更多