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);
}
RAKSmart 商家最近动作还是比较大的,比如他们也在增加云服务器产品,目前已经包含美国圣何塞和洛杉矶机房,以及这个月有新增的中国香港机房,根据大趋势云服务器算是比较技术流的趋势。传统的VPS主机架构方案在技术层面上稍微落后一些,当然也是可以用的。不清楚是商家出于对于传统VPS主机清理库存,还是多渠道的产品化营销,看到RAKSmart VPS主机提供美国、香港和日本机房的半价促销,当然也包括其他...
Hostodo在九月份又发布了两款特别套餐,开设在美国拉斯维加斯、迈阿密和斯波坎机房,基于KVM架构,采用NVMe SSD高性能磁盘,最低1.5GB内存8TB月流量套餐年付34.99美元起。Hostodo是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,美国三个地区机房,支持支付宝或者PayPal、加密货币等付款。下面列出这两款主机配置信息。CP...
DiyVM是一家比较低调的国人主机商,成立于2009年,提供VPS主机和独立服务器租用等产品,其中VPS基于XEN(HVM)架构,数据中心包括香港沙田、美国洛杉矶和日本大阪等,CN2或者直连线路,支持异地备份与自定义镜像,可提供内网IP。本月商家最高提供5折优惠码,优惠后香港沙田CN2线路VPS最低2GB内存套餐每月仅50元起。香港(CN2)VPSCPU:2cores内存:2GB硬盘:50GB/R...
fwrite为你推荐
meeyimevius是什么烟适合男人吸吗?jquerydelegatejQuery的事件委托机制和事件绑定的区别谷歌德语在线翻译求德语翻译。。。不要谷歌不要德语助手、、、万分感谢哦!!!江苏ca证书下载数字证书在哪能下载啊发博客什么是发博文发博客怎样在博客上发文章?发博客怎么发博客?linksys无线路由器设置关于LINKSYS BEFW11S4无线路由器设置java学习思维导图思维导图培训教程?思维导图软件MindManager,freemind,xmind哪个好?垃圾文件清理bat一键清理系统垃圾文件的批处理
合租服务器 域名优惠码 unsplash xfce 云主机51web lamp配置 远程登陆工具 刀片服务器是什么 gspeed 稳定免费空间 美国网站服务器 网站在线扫描 空间登入 百度云加速 路由跟踪 免费ftp 新加坡空间 lamp怎么读 免费网络空间 1美元 更多