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);
}
物语云计算怎么样?物语云计算(MonogatariCloud)是一家成立于2016年的老牌国人商家,主营国内游戏高防独服业务,拥有多家机房资源,产品质量过硬,颇有一定口碑。本次带来的是特惠活动为美国洛杉矶Cera机房的不限流量大带宽VPS,去程直连回程4837,支持免费安装Windows系统。值得注意的是,物语云采用的虚拟化技术为Hyper-v,因此并不会超售超开。一、物语云官网点击此处进入物语云...
阿里云国际版注册认证教程-免绑卡-免实名买服务器安全、便宜、可靠、良心,支持人民币充值,提供代理折扣简介SunthyCloud成立于2015年,是阿里云国际版正规战略级渠道商,也是阿里云国际版最大的分销商,专业为全球企业客户提供阿里云国际版开户注册、认证、充值等服务,通过SunthyCloud开通阿里云国际版只需要一个邮箱,不需要PayPal信用卡就可以帮你开通、充值、新购、续费阿里云国际版,服务...
RackNerd 商家从2019年上线以来争议也是比较大的,一直低价促销很多网友都认为坚持时间不长可能会跑路。不过,目前看到RackNerd还是在坚持且这次黑五活动也有发布,且活动促销也是比较多的,不过对于我们用户来说选择这些低价服务商尽量的不要将长远项目放在上面,低价年付套餐服务商一般都是用来临时业务的。RackNerd商家这次发布黑五促销活动,一共有五款年付套餐,涉及到多个机房。最低年付的套餐...
fwrite为你推荐
网络小说赚钱网络作家怎样挣钱,详细点各位,谢了!kx驱动安装教程KX驱动怎么安装word2003公式编辑器w2003的公式编辑器在那软件开发的周期软件生命周期为什么将软件开发过程划分几个阶段?goalgoalgoal开头是O后面是lei什么的英语歌,男声的,好像是摇滚~~~印象城市游戏论坛游聚游戏平台如何使用?微信语音在哪个文件夹微信语音收藏在哪个手机文件夹 安卓手机人脸检测综述人脸检测技术的来源北漂论坛请问北票有论坛吗创业好项目论坛谁能提供点真实可靠的,网络创业赚钱项目?
快速域名备案 网易域名邮箱 a2hosting 韩国俄罗斯 香港机房 wavecom 外国域名 网页背景图片 一点优惠网 eq2 gspeed asp免费空间申请 91vps 中国电信测速网 photobucket 服务器论坛 锐速 websitepanel hosts文件 电信测速器在线测网速 更多