首页 > 代码库 > 文件块读写-使用fread和fwrite
文件块读写-使用fread和fwrite
<style></style>
通常使用fprintf和fscanf进行对文件的格式化读写,但是因为读写的过程中要进行转码,因此
那么可以通过fread和fwrite进行对数据块的读写。
函数定义为
size_t fread(void *buffer,size_t numbyte,size_t count, FILE *fp);size_t fwrite(const void *buffer,size_t numbyte,size_t count, FILE *fp);
参数含义,buffer-数据块首地址,numbyte-单个数据块的大小,count-要写入的数据块个数,fp-要写入的文件
,对于读函数参数含义类似,就是buffer是存储读到的数据块的位置。
进行数据块的存储可以整体保存数组,结构体对象。
例如:
1 #include<stdio.h> 2 #include<malloc.h> 3 4 struct node 5 { 6 int x; 7 int y; 8 }; 9 10 int main(void)11 {12 struct node *b;13 b=(struct node *)malloc(sizeof(struct node));14 15 (*b).x=20;16 (*b).y=30;17 18 printf("%d,%d\n",(*b).x,(*b).y);19 20 FILE *fp;21 22 fp=fopen("file.txt","w+");23 fwrite(b,sizeof(struct node),1,fp);24 25 fclose(fp);26 27 fp=fopen("file.txt","r+");28 struct node *c;29 c=(struct node *)malloc(sizeof(struct node));30 fread(c,sizeof(struct node),1,fp);31 32 fclose(fp);33 printf("(%d,%d)\n",c->x,c->y);34 return 0;35 }
可以是用typedef定义结构体,
注意写入文件完毕之后必须保存,否则数据可能丢失。
字符串和数组整体写入和读取
1 #include<stdio.h> 2 #include<malloc.h> 3 4 int main(void) 5 { 6 char name[]="helloworld"; 7 printf("%s\n",name); 8 9 FILE *fp=fopen("file","w+");10 fwrite(name,sizeof(name),1,fp);11 fclose(fp);12 13 char *temp;14 fp=fopen("file","r+");15 fread(temp,sizeof(name),1,fp);16 fclose(fp);17 18 printf("%s\n",temp);19 return 0;20 }
文件块读写-使用fread和fwrite
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。