【C语言提高49】按照块读写文件
2016-01-10 13:04
549 查看
块方式: 直接把内存数据 写入到文件中
typedef struct Teacher { char name[64]; int age; }Teacher;
读:
void main_fread() { int i = 0; int myN; FILE*fp = NULL; char*fileName = "D:/3.data"; Teacher tArray[3]; fp = fopen(fileName, "wb"); if (fp == NULL) { printf("建立文件失败"); return; } for (i = 0;i < 3;i++) { myN = fread(&tArray[i], sizeof(Teacher), 1, fp); } for (i = 0;i < 3;i++) { printf("Name:%s,age:%d",tArray[i].name,tArray[i].age); } if (fp != NULL) { fclose(fp); } }
写:
void main_fwrite() { int i = 0; int myN; FILE*fp = NULL; char*fileName = "D:/3.data"; Teacher tArray[3]; for (i = 0;i < 3;i++) { sprintf(tArray[i].name,"%d%d%d",i+1,i+1,i+1); tArray[i].age = i + 31; } fp = fopen(fileName,"rb"); if (fp == NULL) { printf("建立文件失败"); return; } //内存打包技术 /*_ACRTIMP size_t __cdecl //返回值 返回写的次数 fwrite( _In_reads_bytes_(_ElementSize * _ElementCount) void const* _Buffer, //从内存块开始 _In_ size_t _ElementSize, //从这个内存块开始 写多长 _In_ size_t _ElementCount, //写多少次 _Inout_ FILE* _Stream //写入到文件指针所指向的文件中 ); */ for (i = 0;i < 3;i++) { myN=fwrite(&tArray[i], sizeof(Teacher), 1, fp); //myN 判断 有没有写满 磁盘 } for (i = 0;i < 3;i++) { sprintf(tArray[i].name, "%d%d%d", i + 1, i + 1, i + 1); tArray[i].age = i + 31; } if (!fp == NULL) { fclose(fp); } }
相关文章推荐
- 【C语言提高48】按照行读写文件
- C++与C的保留小数
- Effective C++(条款26-31)
- 【C语言提高47】按照字符读写文件
- [转] C++ try catch() throw 异常处理
- C++ 课本学习笔记(1)
- [转] c++ try catch 问题
- 【C语言提高46】【文件操作API】----- 非标准文件的读写
- C语言中数组转化为字符串的方法
- C语言中数组转化为字符串的方法
- C语言中数组转化为字符串的方法
- xcode C++一些简单设置
- xcode C++一些简单设置
- 动态库
- c++ 11 lamda表达式语法整理
- 【C语言提高45】【文件操作API】----- 标准文件的读写
- 【C语言提高44】【文件操作API】------文件api的分类
- 静态库
- 《Effective Modern C++》翻译--条款1: 理解模板类型推导
- 《Effective Modern C++》翻译--条款1: 理解模板类型推导