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

半月湾hmbcloud升级500Mbps带宽,原生VPS,$4.99/月

关于半月湾HMBCloud商家之前也有几篇那文章介绍过这个商家的产品,对于他们家的其他产品我都没有多加留意,而是对他们家的DC5机房很多人还是比较喜欢的,这个比我们有些比较熟悉的某商家DC6 DC9机房限时,而且半月湾HMBCloud商家是相对便宜的。关于半月湾DC5机房的方案选择和介绍:1、半月湾三网洛杉矶DC5 CN2 GIA同款DC6 DC9 1G内存 1TB流量 月$4.992、亲测选择半...

Gcore(75折)迈阿密E5-2623v4 CPU独立服务器

部落分享过多次G-core(gcorelabs)的产品及评测信息,以VPS主机为主,距离上一次分享商家的独立服务器还在2年多前,本月初商家针对迈阿密机房限定E5-2623v4 CPU的独立服务器推出75折优惠码,活动将在9月30日到期,这里再分享下。G-core(gcorelabs)是一家总部位于卢森堡的国外主机商,主要提供基于KVM架构的VPS主机和独立服务器租用等,数据中心包括俄罗斯、美国、日...

易探云月付18元起,香港/美国/深圳/北京VPS,CN2、BGP等多线路

易探云怎么样?易探云是国内一家云计算服务商家,致力香港服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。易探云服务器均选择当下热门线路,比如CN2 GIA、BGP线路、CN2线路等,所有云主机支持月付,并且首月优惠,年付优惠,优惠后香港沙田云服务器/独立ip/香港CN2线路,每月仅18元,188元/年。点击进入:易探云官方网站地址1、香港...

fwrite为你推荐
软件开发的周期软件生命周期为什么将软件开发过程划分几个阶段?怎样恢复系统怎么还原系统qq申请免费申请qq号免费立即申请安卓系统软件删除安卓手机里的软件,哪些可以删除,哪些不可以删除?智能机刷机软件安卓手机在电脑上强制刷机用什么软件好?创业好项目论坛大学生创业有什么好的项目啊?智能公共广播系统智能广播的系统内容linux操作系统好吗linux操作系统 比 windows系统 更好吗?无法清除dns缓存急求无法清除DNS缓存怎么解决要有效的!prepare的用法prepare和prepare for的区别
独立ip空间 php主机租用 合租服务器 俄罗斯vps 美国vps评测 山东vps greengeeks idc评测 singlehop 百度云100as 美国主机代购 外国域名 东莞数据中心 域名和空间 多线空间 服务器是干什么用的 河南移动梦网 独立主机 ledlamp 空间申请 更多