fopen、fwrite、fread 函数——读写结构体类型数据详解
来源:互联网 发布:背单词软件 知乎 编辑:程序博客网 时间:2024/05/27 21:50
问题引入
几个概念需要了解
- 文件读写过程:打开、读、写、关闭
- 结构体类型,也是一种类型,用简单数据类型的思维去考虑复杂类型
fopen()函数
函数原型: FILE *fopen(const char *path, const char *mode)
使用注意:需要判断产生的文件指针是不是空指针
fwrite()函数
函数原型: size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
函数说明:fwrite()用来将数据写入文件流中. 参数stream 为已打开的文件指针, 参数ptr 指向欲写入的数据地址, 总共写入的字符数以参数size*nmemb 来决定. Fwrite()会返回实际写入的nmemb 数目.
使用注意:prt指针当前指向的位置
fread()函数
函数原型: size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
实例解析
//写入两个学生数据到结构体stua//存入到结构体stub并读出#include <stdio.h>#include <stdlib.h>#include <conio.h>#define N 5#define SIZE (sizeof(struct stu))#define PATH "demo.txt"typedef struct stu{ char name[N]; int age;}STU;int main (void) { STU stua[2], stub[2],*pa=stua, *pb=stub; printf("Write File:\n"); for (int i=0; i<2; i++, pa++) { scanf("\t%s%d", pa->name, &pa->age); } FILE *fp; if ( (fp=fopen(PATH, "wb+")) == NULL ) { printf("Cannot open file\n"); getch(); exit(1); } pa = stua; fwrite(pa, SIZE, 2, fp); rewind(fp); fread(pb, SIZE, 2, fp); printf("\nRead File:\n"); for (int j=0; j<2; j++, pb++) { printf("\t%5s %2d\n", pb->name, pb->age); } fclose(fp); return 0;}
1 0
- fopen、fwrite、fread 函数——读写结构体类型数据详解
- C++ 文件读写函数之——fopen、fread和fwrite
- C++ 文件读写函数之——fopen、fread和fwrite
- fopen()、fwrite()、fread()函数
- fopen , fread fwrite 函数读写二进制文件 问题总结
- fopen , fread fwrite 函数读写二进制文件 问题总结
- fopen , fread fwrite 函数读写二进制文件 问题总结
- 数据块读写函数:fread和fwrite
- fwrite(),fread()读写文件数据块函数
- 函数名称: fopen、fread、fwrite
- c 函数fopen,fwrite,fread
- c 函数fopen,fwrite,fread
- 文件读写结构体信息...fread, fwrite
- C语言读写文件 -fopen、fread、fwrite
- fopen函数和fread函数、fwrite函数
- fopen函数和fread函数、fwrite函数
- fopen函数和fread函数、fwrite函数
- fopen函数和fread函数、fwrite函数
- Hive调用Java类ReflectUDF
- HOG特征
- 2017华为codecraft 《大视频时代布局》
- 题目1096:日期差值
- Tone mapping进化论
- fopen、fwrite、fread 函数——读写结构体类型数据详解
- Visual Stdio中的断点
- 题目1097:取中值
- Maven 使用profile来区分开发、测试、生产环境
- HTML常用标签使用(二)
- JAVA求学之路第十九天(多线程)
- java -- 异常处理
- 基于物理着色(二)- Microfacet材质和多层材质
- 微信如何配置授权回调域名