fwrite fread用法详解

C 库函数 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)ptr 所指向的数组中的数据写入到给定流 stream 中。

声明

下面是 fwrite() 函数的声明。

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)

参数

  • ptr -- 这是指向要被写入的元素数组的指针。
  • size -- 这是要被写入的每个元素的大小,以字节为单位。
  • nmemb -- 这是元素的个数,每个元素的大小为 size 字节。
  • stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输出流。

返回值

如果成功,该函数返回一个 size_t 对象,表示元素的总数,该对象时一个整型数据类型。如果该数字与 nmemb 参数不同,则会显示一个错误。


描述

C 库函数 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 从给定流 stream 读取数据到 ptr 所指向的数组中。

声明

下面是 fread() 函数的声明。

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

参数

  • ptr -- 这是指向带有最小尺寸 size*nmemb 字节的内存块的指针。
  • size -- 这是要读取的每个元素的大小,以字节为单位。
  • nmemb -- 这是元素的个数,每个元素的大小为 size 字节。
  • stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。

返回值

成功读取的元素总数会以 size_t 对象返回,size_t 对象是一个整型数据类型。如果总数与 nmemb 参数不同,则可能发生了一个错误或者到达了文件末尾。



  1. ()  
  2. {  
  3.     FILE *fp;  
  4.     int size = 0;  
  5.     char *ar ;  
  6.   
  7.     //二进制方式打开文件  
  8.     fp = fopen("lining.txt","rb");  
  9.     if(NULL == fp)  
  10.     {  
  11.         printf("Error:Open input.c file fail!\n");  
  12.         return;  
  13.     }  
  14.   
  15.     //求得文件的大小  
  16.     fseek(fp, 0, SEEK_END);  
  17.     size = ftell(fp);  
  18.     rewind(fp);  
  19.   
  20.     //申请一块能装下整个文件的空间  
  21.     ar = (char*)malloc(sizeof(char)*size);  
  22.   
  23.     //读文件  
  24.     fread(ar,1,size,fp);//每次读一个,共读size次  
  25.   
  26.     printf("%s",ar);  
  27.     fclose(fp);  
  28.     free(ar);  
  29.   
  30.     printf("按任意键继续");  
  31.     getchar();  
  32.     getchar();  
  33. }  
阅读更多
个人分类: C/C++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭