fwrite(用fread和fwrite读写文件)

ANSI C文件系统提供fread()和fwrite()两个函数,用于读/写长于一字节的数据类型。这两个函数允许读/写各种类型的数据块。它们的原型是:size_t fread(void *buffer,size_t num_bytes,size_...

ANSI C文件系统提供fread()和fwrite()两个函数,用于读/写长于一字节的数据类型。这两个函数允许读/写各种类型的数据块。它们的原型是:

size_t fread(void *buffer,size_t num_bytes,size_t count,FILE *fp);size_t fwrite(const void *buffer,size_t num_bytes,size_t count,FILE *fp);

对fread()而言,buffer是接收读入数据的内存区的指针。 对fwrite()而言,buffer是写入到那个文件的信息的指针。

count的值确定读/写多少项,每项长度等于num_bytes。

fp是指向事先打开的流的指针。

正常情况下,fread()返回读入的项数,fwrite()返回写出的项数。

只要文件按二进制打开,fread()和fwrite()就可以读/写各类信息。以下程序先向文件写double,int和long型数据,然后再读回。

//向磁盘文件写入一些非字符型的数据,并且再将其读回到内存#include <stdio.h>#include <stdlib.h> int main(void){ FILE *fp; double d1 = 12.23,d2; int i1 = 101,i2; long l1 = 123023L,l2; if((fp=fopen("test", "wb+"))==NULL) { printf("Cannot open file.\n"); exit(1); } //将3个值写入到文件中 fwrite(&d1, sizeof(double), 1, fp); fwrite(&i1, sizeof(int), 1, fp); fwrite(&l1, sizeof(long), 1, fp); //重置到文件的开始处 rewind(fp); //将3个值从文件中读出 fread(&d2, sizeof(double), 1, fp); fread(&i2, sizeof(int), 1, fp); fread(&l2, sizeof(long), 1, fp); printf("%f %d %ld", d, i, l); fclose(fp); return 0;}用fread和fwrite读写文件

  • 发表于 2022-10-30 12:53:07
  • 阅读 ( 102 )
  • 分类:科技

0 条评论

请先 登录 后评论
运动练
运动练

578 篇文章

你可能感兴趣的文章

相关问题