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);
}
无忧云官网无忧云怎么样 无忧云服务器好不好 无忧云值不值得购买 无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免北岸建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高...
hostround怎么样?大硬盘服务器,高防服务器。hostround,美国商家,2017年成立,正规注册公司(Company File #6180543),提供虚拟主机、VPS云主机、美国服务器、荷兰服务器租用等。现在有1款特价大硬盘独服,位于达拉斯,配置还不错,本月订购时包括免费 500Gbps DDoS 保护,有兴趣的可以关注一下。点击直达:hostround官方网站地址美国\荷兰独立服务器...
RepriseHosting是成立于2012年的国外主机商,提供独立服务器租用和VPS主机等产品,数据中心在美国西雅图和拉斯维加斯机房。商家提供的独立服务器以较低的价格为主,目前针对西雅图机房部分独立服务器提供的优惠仍然有效,除了价格折扣外,还免费升级内存和带宽,商家支持使用支付宝或者PayPal、信用卡等付款方式。配置一 $27.97/月CPU:Intel Xeon L5640内存:16GB(原...
fwrite为你推荐
防恶意点击防恶意点击的原理到底是什么?CA3445什么是CAB-35?美国大选投票实时数据美国大选最新情况?呼叫中心搭建如何建立适合自己的呼叫中心智能公共广播系统智能公共广播系统js-3301数码mp3编程器怎么使用handoff怎么用Mac OS Yosemite Handoff,iOS8 Handoff怎么用操控人心怎样帮助别人让别人觉得欠我人情?修改qq密码保护如何设置QQ密码保护和修改密码计算机编程基础学习电脑编程应该有什么基础?cad图批量打印怎样一次性打印CAD所有布局里面的图
代理域名备案 香港ufo 56折 godaddy续费优惠码 godaddy域名证书 权嘉云 什么是刀片服务器 国外免费asp空间 360云服务 万网空间管理 英雄联盟台服官网 浙江服务器 cdn网站加速 域名转入 globalsign 域名商城 ddos攻击教程 大容量存储模式 web服务器软件下载 台式电脑主机推荐 更多