fread和fwrite函数功能

  用来读写一个数据块。

一般调用形式

  fread(buffer,size,count,fp);

  fwrite(buffer,size,count,fp);

说明

  (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。

  (2)size:要读写的字节数;

  (3)count:要进行读写多少个size字节的数据项;

  (4)fp:文件型指针。

注意:1 完成次写操(fwrite())作后必须关闭流(fclose());

2 完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(FILE * fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出;

3 fprintf() : 按格式输入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。如int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ;str1:10字节;str2: 10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。

文件使用之后一定要关闭,否则将不能正确显示内容.fwrite:读入两个学生信息然后用fwrite存入文件

fread:用fread从文件中读出学生信息。

fwrite.c

#include <stdio.h>
#define SIZE 2
struct student_type
{
char name[10];
int num;
int age;
char addr[10];
}stud[SIZE];
void save()
{
FILE *fp;
int i;
if((fp=fopen("stu_list","wb"))==NULL)
{
  printf("cant open the file");
  exit(0);
}
for(i=0;i<SIZE;i++)
{
   if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)
    printf("file write error\n");
}
fclose(fp);
}
main()
{
int i;
for(i=0;i<SIZE;i++)
{
   scanf("%s%d%d%s",&stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr);
   save();
}
for(i=0;i<SIZE;i++)
{
   printf("%s,%d,%d",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);
}
}

fread.c

#include <stdio.h>
#define SIZE 2
struct student_type
{
char name[10];
int num;
int age;
char addr[10];
}stud[SIZE];
void read()
{
FILE *fp;
int i;
if((fp=fopen("stu_list","rb"))==NULL)
{
  printf("cant open the file");
  exit(0);
}
for(i=0;i<SIZE;i++)
{
   if(fread(&stud[i],sizeof(struct student_type),1,fp)!=1)
    printf("file write error\n");
}
fclose(fp);
}
main()
{

int i;
read();
for(i=0;i<SIZE;i++)
{
   printf("%s,%d,%d,%s",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);
   printf("\n");
}
}

转载于:https://www.cnblogs.com/to-creat/p/5643900.html

fread和fwrite函数功能相关推荐

  1. java实现fread_fread和fwrite函数功能

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

  2. fwrite函数Matlab,fread和fwrite函数,C语言fread和fwrite函数详解

    对文件格式化读写函数 fprintf 与 fscanf 而言,尽管它可以从磁盘文件中读写任何类型的文件,即读写的文件类型可以是文本文件.二进制文件,也可以是其他形式的文件.但是,对二进制文件的读写来说 ...

  3. fread和fwrite函数

    http://www.cnblogs.com/witxjp/archive/2011/03/21/1990519.html 1.函数功能   用来读写一个数据块. 2.一般调用形式   fread(b ...

  4. linux下 c语言 用write open二进制写文件,Linux下用C语言fopen、fread和fwrite函数对二进制文件的操作-Go语言中文社区...

    一.前言 在做一个镜头的初始化操作,需要加载一个648*522像素大小的文件,厂商提供的是一个excel表,如果要加载数据,可用加载txt文本的方式,我选用二进制方式加载文件:大家都知道电脑真正执行的 ...

  5. C语言文件指针的基本函数介绍包含了fpoen、fclose、fgetc、fputc、fscanf、fprintf、fgets、fputs、fread、fwrite函数以及文件定位函数.

    一.打开关闭文件 只打开文件   再关闭文件 #include <stdio.h> #include<stdlib.h> main() {FILE *fp;fp = fopen ...

  6. fread()和fwrite()函数分析

    下面这一段内容是我09年贴上来的一段网上摘录,似乎问题多多.网上的以讹传讹的内容太多,都是抄来抄去,一个人抄错了,就是一传十十传百.学习是不断发现错误.修正错误的过程.为了对自己负责也为他人负责,将相 ...

  7. C语言 fread()与fwrite()函数说明与示例

    1.作用 读写文件数据块. 2.函数原型 (1)size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); 其中,pt ...

  8. 文件操作之fread()和fwrite()函数

    size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); buffer-指向要写数据的存储位置 siz ...

  9. C语言中输入输出fread和fwrite函数的用法

    一.前言 回顾了一下谭浩强老师的C语言设计书,在文件一章中发现了一些不错的题目. 二.题目 5.有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号,姓名,3门课程成绩),计算出平均成绩 ...

最新文章

  1. centos创建禁止登录用户
  2. 第一次作业+105032014116
  3. 第三阶段:2.产品运营:4.活动运营
  4. ibmmq 通道命令_IBM MQ 使用指南
  5. telnet本机端口不通原因_【Academic】ssh端口转发实战复习 之 R
  6. springmvc面试题2021
  7. Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含……。编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间
  8. 【Tiny4412】 Tiny4412开发环境搭建
  9. 获取当前周、上一周、下一周日期
  10. c语言全局变量和局部变量作用域重合时,c语言全局变量与局部变量(当变量重名时)的使用情况...
  11. os sys hashlib
  12. xposed hook 静态函数_浅谈 Xposed 新概念【模块作用域】
  13. Android Studio优秀插件汇总
  14. 人身三流指什么_保险合同的主体是什么,主体的变更是什么?
  15. 目前国内的语音识别技术是什么水准?
  16. oracle注意事项
  17. Java并发基础问题总结
  18. Echarts地图案例
  19. H5的video用法
  20. ASCII字符绘图网站推荐及使用Python绘制ASCII字符画

热门文章

  1. 如何使用SSL pinning来使你的iOS APP更加安全
  2. Newtonsoft.Json(Json.Net)学习笔记
  3. Struts2的国际化
  4. SimpleDateFormat使用方法详解
  5. “staticMetaObject”: 不是“****”的成员
  6. 01-HTML基础与进阶-day5-录像262
  7. PXC 部署前置检查
  8. 甲骨文正式宣布将Java EE移交给Eclipse基金会
  9. POJ 3517 And Then There Was One( 约瑟夫环模板 )
  10. Java格式化Date为字符串的高级写法