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);
}
快云科技: 11.11钜惠 美国云机2H5G年付148仅有40台,云服务器全场7折,香港云服务器年付388仅不到五折 公司介绍:快云科技是成立于2020年的新进主机商,持有IDC/ICP/ISP等证件资质齐全主营产品有:香港弹性云服务器,美国vps和日本vps,香港物理机,国内高防物理机以及美国日本高防物理机官网地址:www.345idc.com活动截止日期为2021年11月13日此次促销活动提供...
青果网络怎么样?青果网络隶属于泉州市青果网络科技有限公司,青果网络商家成立于2015年4月1日,拥有工信部颁发的全网IDC/ISP/IP-VPN资质,是国内为数不多具有IDC/ISP双资质的综合型云计算服务商。青果网络是APNIC和CNNIC地址分配联盟成员,泉州市互联网协会会员单位,信誉非常有保障。目前,青果网络商家正式开启了618云特惠活动,针对国内外机房都有相应的优惠。点击进入:青果网络官方...
v5net当前对香港和美国机房的走优质BGP+CN2网络的云服务器进行7折终身优惠促销,每个客户进线使用优惠码一次,额外有不限使用次数的终身9折优惠一枚!V5.NET Server提供的都是高端网络线路的机器,特别优化接驳全世界骨干网络,适合远程办公、跨境贸易、网站建设等用途。 官方网站:https://v5.net/cloud.html 7折优惠码:new,仅限新客户,每人仅限使用一次 9...
fwrite为你推荐
qq业务代码手机可以开哪些QQ业务?代码是好多?安卓系统软件删除安卓手机里的软件,哪些可以删除,哪些不可以删除?iphone12或支持北斗导航苹果12处理器是什么magento模板网站建好了,但是对模板不满意,有哪位亲知道怎么换模板吗?百度创业史简论《创业史》的思想内容.艺术手法客服系统方案客户管理系统方案都有哪些呢?2020带来好运的微信头像2020带来好运抖音网名vs2005快捷键求eclipse3.3和VS2005的快捷键智能公共广播系统智能广播的系统内容微软永久关闭实体店微软windows10易升怎么关闭
中国互联网域名注册 日本vps 购买域名和空间 泛域名绑定 site5 mediafire l5520 512av 免费ftp站点 anylink 空间论坛 股票老左 南通服务器 酷番云 域名dns 跟踪路由命令 上海电信测速网站 阿里云官方网站 lick 百度云空间 更多