文档详情

ppt-数据块输入输出.ppt

发布:2019-10-20约1.78千字共11页下载文档
文本预览下载声明
一. 数据块输出到文件函数fwrite() 例:把数据组织成块输出到文件。 二.从文件读取数据块函数fread() 例:按数据块格式从文件读出数据并输出到显示器。 第94讲 数据块输入输出 数据块的输入和输出 打开 数据块 读/写 关闭 当用函数fopen()打开一个文件后,文件就有一个位置指针,指向当前的读写位置,从该位置起可以对文件进行读写 ,位置指针顺序根随变化。 从起始地址为buffer的内存中,把count个含有size 个字节的数据块,输出到文件指针fp指向的数据文件中。 一.数据块输出到文件函数fwrite() 函数fwrite()的调用形式: fwrite(buffer,size,count,fp); 功能: 功能: 说明:buffer是一个指针,是待输出的数据在内存中的起始地址; 当函数执行成功时,函数的返回值为count,否则为0 。 fwrite(f,4,1,fp); 把float型变量f中的数据输出到fp指向的数据文件中。 int main() { FILE *fp; if((fp=fopen(file.txt,w))==NULL) { printf(不能打开file.txt文件\n); exit(0); } WriteCsvFile(fp); printf(11001 张为民 90\n); printf(11002 刘长乐 94\n); printf(11003 陈 华 93\n); printf(三个记录已保存!\n); fclose(fp); return 0; } 例: #define n 3 void WriteCsvFile(FILE *fp); typedef struct student { char no[8]; char name[16]; float score; }stud; void WriteCsvFile(FILE *fp) { int i; stud w[n]={{11001,张为民,90},{11002,刘长乐,94},{11003,陈 华,93}}; for(i=0; i3; i++) fwrite(w[i],sizeof(stud),1,fp); } 例续: 从文件指针fp指向的数据文件中读取count个含有size个 字节的数据块,存到起始地址为buffer的内存(变量)中。 二.从文件读取数据块函数fread() 函数fread()的调用形式: fread(buffer,size,count,fp); 功能: 功能: 说明:size是读取的每个数据块的总字节数;count是要读取的数据块的个数。当函数执行成功时,函数的返回值为count,否则为0。 fread(stud,sizeof(struct student),1,fp); 若student为结构体名,stud为该结构体数组,从fp指向的数据文件中,读取一个结构体数据(包括各成员)送入结构体数组元素stud[0]中。 int main() { FILE *fp; if((fp=fopen(file.txt,r))==NULL) { printf(不能打开file.txt文件\n); exit(0); } FreadFile(fp); printf(\n三个记录已读出!\n); fclose(fp); return 0; } 例续: void FreadFile(FILE *fp); typedef struct student { char no[8]; char name[16]; float score; }stud; void FreadFile(FILE *fp) { int i; stud w; for(i=0; i3; i++) { fread(w,sizeof(stud),1,fp); printf(%s %s %.1f\n,w.no,w.name,w.score); } } 例续:
显示全部
相似文档