fopen、fwrite、fread 函数——读写结构体类型数据详解
2017-04-16 23:02
369 查看
问题引入
几个概念需要了解文件读写过程:打开、读、写、关闭
结构体类型,也是一种类型,用简单数据类型的思维去考虑复杂类型
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 ; 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; }
相关文章推荐
- c语言中所有文件操作函数详解fopen、fwrite、fread、fgetc、fputc、fscanf、fprintf、ftell、fseek等函数
- c语言中所有文件操作函数详解fopen、fwrite、fread、fgetc、fputc、fscanf、fprintf、ftell、fseek等函数
- c语言中所有文件操作函数详解fopen、fwrite、fread、fgetc、fputc、fscanf、fprintf、ftell、fseek等函数
- (转载)C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
- C++ 文件读写函数之——fopen、fread和fwrite
- C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
- C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
- fopen , fread fwrite 函数读写二进制文件 问题总结
- C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
- C++ 文件读写函数之——fopen、fread和fwrite
- fopen , fread fwrite 函数读写二进制文件 问题总结
- C语言文件读写常识(fseek, ftell, fread, fwrite, fopen)
- fopen\fread\fwrite\fscanf\fprintf\fseek\feof\rewind\fgets\fputc等系列函数使用总结
- C语言进行二进制文件的读写操作(fopen,fwrite,fread)
- fgetc()/fputc()/fgets()/fputs()/fread()/fwrite()/fopen()/fclose() 等C语言文件操作函数
- C语言数据块读写函数:fread和fwrite
- c 函数fopen,fwrite,fread
- 关于标准C文件流读写问题:fopen,fread,fwrite,fclose的一些注意事项
- 使用fread和fwrite函数读写文件
- [小结]C语言的文件操作函数fopen,fread,fwrite注意点