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);
}
这不端午节和大家一样回家休息几天,也没有照顾网站的更新。今天又出去忙一天没有时间更新,这里简单搜集看看是不是有一些商家促销活动,因为我看到电商平台各种推送活动今天又开始一波,所以说现在的各种促销让人真的很累。比如在前面我们也有看到PacificRack 商家发布过年中活动,这不在端午节(昨天)又发布一款闪购活动,有些朋友姑且较多是端午节活动,刚才有看到活动还在的,如果有需要的朋友可以看看。第一、端...
在之前的一些文章中有提到HostYun商家的信息,这个商家源头是比较老的,这两年有更换新的品牌域名。在陆续的有新增机房,价格上还是走的低价格路线,所以平时的折扣力度已经是比较低的。在前面我也有介绍到提供九折优惠,这个品牌商家就是走的低价量大为主。中秋节即将到,商家也有推出稍微更低的88折。全场88折优惠码:moon88这里,整理部分HostYun商家的套餐。所有的价格目前都是原价,我们需要用折扣码...
如今我们还有在做个人网站吗?随着自媒体和短视频的发展和兴起,包括我们很多WEB2.0产品的延续,当然也包括个人建站市场的低迷和用户关注的不同,有些个人已经不在做网站。但是,由于我们有些朋友出于网站的爱好或者说是有些项目还是基于PC端网站的,还是有网友抱有信心的,比如我们看到有一些老牌个人网站依旧在运行,且还有新网站的出现。今天在这篇文章中谈谈有网友问关于个人网站备案的问题。这个也是前几天有他在选择...
fwrite为你推荐
网络小说赚钱网络小说工作室都是怎么赚钱的外媒称华为加速南泥湾项目为什么华为要求清理34岁以上的员工?win7无线局域网windows7怎样设置无线局域网windows7正版验证Win7正版验证方法有哪些?安卓系统软件删除安卓手机怎么卸载已经安装的各类软件?圣诞节网页制作这是我特别为您制作的2011年圣诞节祝福网页,祝您生蛋(圣诞)快乐,好事圆圆,好梦连连!快去看看吧。微软将停止支持32位Win10系统win10提示系统安装错误怎么解决人脸检测综述人脸检测技术的研究现状vs2005快捷键VS2005的快捷方式是哪个文件啊?handoff怎么用Hand off怎么用?
免费虚拟主机申请 郑州服务器租用 深圳域名空间 域名服务dns的主要功能为 服务器评测 bandwagonhost 精品网 themeforest 特价空间 创宇云 镇江联通宽带 免费个人网站申请 godaddy域名证书 193邮箱 七夕促销 idc资讯 网站cdn加速 183是联通还是移动 什么是服务器托管 联通网站 更多