1.作用

  读写文件数据块。

2.函数原型

  (1)size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

     其中,ptr:指向保存结果的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针

     函数返回读取数据的个数。

  (2)size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

       其中,ptr:指向保存数据的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针

     函数返回写入数据的个数。

3.注意

  (1)写操作fwrite()后必须关闭流fclose()。

  (2)不关闭流的情况下,每次读或写数据后,文件指针都会指向下一个待写或者读数据位置的指针。

4.读写常用类型

  (1)写int数据到文件

 #include <stdio.h>
#include <stdlib.h>
int main ()
{
FILE * pFile;
int buffer[] = {, , , };
if((pFile = fopen ("myfile.txt", "wb"))==NULL)
{
printf("cant open the file");
exit();
}
//可以写多个连续的数据(这里一次写4个)
fwrite (buffer , sizeof(int), , pFile);
fclose (pFile);
return ;
}

  (2)读取int数据

 #include <stdio.h>
#include <stdlib.h> int main () {
FILE * fp;
int buffer[];
if((fp=fopen("myfile.txt","rb"))==NULL)
{
printf("cant open the file");
exit();
}
if(fread(buffer,sizeof(int),,fp)!=) //可以一次读取
{
printf("file read error\n");
exit();
} for(int i=;i<;i++)
printf("%d\n",buffer[i]);
return ;
}

执行结果:

5.读写结构体数据

  (1)写结构体数据到文件

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
int age;
char name[];
}people; int main ()
{
FILE * pFile;
int i;
people per[];
per[].age=;strcpy(per[].name,"li");
per[].age=;strcpy(per[].name,"wang");
per[].age=;strcpy(per[].name,"zhang"); if((pFile = fopen ("myfile.txt", "wb"))==NULL)
{
printf("cant open the file");
exit();
} for(i=;i<;i++)
{
if(fwrite(&per[i],sizeof(people),,pFile)!=)
printf("file write error\n");
}
fclose (pFile);
return ;
}

  (2)读结构体数据

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
int age;
char name[];
}people; int main () {
FILE * fp;
people per;
if((fp=fopen("myfile.txt","rb"))==NULL)
{
printf("cant open the file");
exit();
} while(fread(&per,sizeof(people),,fp)==) //如果读到数据,就显示;否则退出
{
printf("%d %s\n",per.age,per.name);
}
return ;
}

执行结果:

C语言 fread()与fwrite()函数说明与示例的更多相关文章

  1. C++:fread、fwrite函数用法

    主要内容: fread.fwrite函数的用法 1.函数功能 用来读写一个数据块. 2.一般调用形式 fread(buffer,size,count,fp); fwrite(buffer,size,c ...

  2. fread和fwrite函数功能

    fread和fwrite函数功能   用来读写一个数据块. 一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); ...

  3. fread 和 fwrite 函数用法示例以及注意事项

    1.函数功能   用来读写一个数据块. 2.一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); 3.说明   ( ...

  4. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  5. C++之函数fgetc和fputc、fgets和fputs、fread和fwrite、fscanf和fprintf用法小结

    #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; int ...

  6. fopen函数和fread函数、fwrite函数

    fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...

  7. C编程中fread 、fwrite 用法总结

    在C语言中进行文件操作时,我们经常用到fread()和fwrite(),用它们来对文件进行读写操作.下面详细绍一下这两个函数的用法.   我们在用C语言编写程序时,一般使用标准文件系统,即缓冲文件系统 ...

  8. fread和fwrite的使用

    fread和fwrite的使用 fread和fwrite一般用于二进制文件的输入/输出,要不然你打开fwrite写入的文件就是乱码. 1.fread和fwrite函数 数据块I/O fread与fwr ...

  9. fread和fwrite用法小结

    fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出. #include <stdio.h>size_t fread(void *p ...

随机推荐

  1. 迷你MVVM框架 avalonjs 1.3.9发布

    本次升级,avalon改进了许多内部方法,大大提升性能,并且带来异步刷新视图的新功能. ms-html内部不再使用异步 head元素中的avalon元素加入ms-skip指令 重构计算属性,现在超级轻 ...

  2. select 中添加option的注意

    在平时写JS中经常要给Select添加option,如果我们把option中的数据用一个字符串来表示: eg: var strOption='<option>1</option> ...

  3. ==、is

    ==.is 总结 is 是比较两个引用是否指向了同一个对象(引用比较). == 是比较两个对象的值是否相等(值比较).

  4. spring中的BeanFactory和FactoryBean的区别与联系

    首先,这俩都是个接口… 实现 BeanFactory 接口的类表明此类是一个工厂,作用就是配置.新建.管理 各种Bean. 而 实现 FactoryBean 的类表明此类也是一个Bean,类型为工厂B ...

  5. DEXSeq

    1)Introduction DEXSeq是一种在多个比较RNA-seq实验中,检验差异外显子使用情况的方法. 通过差异外显子使用(DEU),我们指的是由实验条件引起的外显子相对使用的变化. 外显子的 ...

  6. like模糊查询

    1. ${}获取值,直接连接 name like '%${search_content}%' 2.CONCAT()函数 MySQL的 CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的m ...

  7. Cause: org.xml.sax.SAXParseException; lineNumber: 45; columnNumber: 62; 元素内容必须由格式正确的字符数据或标记组成。

    三月 09, 2018 12:13:39 下午 org.apache.catalina.core.StandardContext listenerStart严重: Exception sending ...

  8. 常用特殊符号的HTML代码(HTML字符实体)

    适当使用实体,对页面开发有相当大的帮助. 自己收集的一些常用的以实体代替与HTML语法相同的字符,避免浏览解析错误. 常用HTML字符实体(建议使用实体): 字符 名称 实体名 实体数 • 圆点   ...

  9. PAT L2-005 集合相似度(模拟集合set)

    给定两个整数集合,它们的相似度定义为:Nc/Nt*100%.其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数.你的任务就是计算任意一对给定集合的相似度. 输入格式: 输 ...

  10. C#.net随机数函数

    (1)Random rnd = new Random(); int rndNum = rnd.Next();           //int 取值范围内的随机数 int rndNum = rnd.Ne ...