`
lgh1992314
  • 浏览: 315653 次
文章分类
社区版块
存档分类
最新评论

fread函数和fwrite函数

 
阅读更多

#include<stdio.h>
typedef struct
{
	char name[10];
	int num;
	int age;
}student;

int main()
{
	student stuin,stuout;
	FILE *fp;
	if((fp=fopen("d:\\dat.txt","w+"))==NULL)
	{
		printf("无法打开此文件!\n");
	}
	scanf("%s %d %d",stuin.name,&stuin.num,&stuin.age);
	fwrite(&stuin,sizeof(student),1, fp);
	fseek(fp,0L,SEEK_END);
	int len = ftell(fp);
	rewind(fp);
	fread(&stuout,len,1,fp);
	printf("%s %d %d\n",stuout.name,stuout.num,stuout.age);
	//fprintf(fp,"%s %d %d",stu.name,stu.num,stu.age);
	fclose(fp);
}

对应关系:

fwrite<<>>fread

fscanf<<>>fprintf

fgets<<>>fputs


1.函数功能


用来读写一个数据块。


2.一般调用形式


fread(buffer,size,count,fp);


fwrite(buffer,size,count,fp);


3.说明


(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");
 }
}


分享到:
评论

相关推荐

    C语言fread函数和fwrite函数的用法及其实例[收集].pdf

    C语言fread函数和fwrite函数的用法及其实例[收集].pdf

    C语言fread函数和fwrite函数的用法及其实例

    ### C语言fread函数和fwrite函数的深入解析 在C语言中,`fread`和`fwrite`函数是处理文件二进制读写的核心工具,它们允许程序员以更高效的方式在内存与磁盘文件之间传输数据,尤其适用于大量数据的处理场景。与`...

    fread函数和fwrite函数的应用

    /* 从键盘输入4个学生的有关数据,然后把它们转存到磁盘文件上去 */ #include #define SIZE 4 struct student_type { char name[10]; int num; int age; char addr[15]; }stud[SIZE]; ...……

    fread,fwrite函数的参数2和参数3的正确顺序

    在C语言中,`fread` 和 `fwrite` 是用于从磁盘文件中读取和写入数据的函数,它们都是标准输入/输出库(stdio.h)的一部分。这两个函数在处理二进制数据时非常有用,例如图像、音频或自定义格式的数据。`fread` 和 `...

    C语言fread和fwrite

    在C语言中,`fread`和`fwrite`是两个非常重要的I/O函数,它们用于从文件中读取数据和向文件中写入数据。这两个函数是标准库`stdio.h`的一部分,对于处理二进制文件尤其有用。下面将详细介绍`fread`和`fwrite`的使用...

    为什么fread(),fwrite()的返回值总是为0,但是读写文件正常

    在C语言中,`fread()` 和 `fwrite()` 是用于从文件中读取和写入数据的标准库函数,它们属于 `&lt;stdio.h&gt;` 头文件的一部分。这两个函数在处理大量数据时非常有用,但初学者可能会遇到一些困惑,尤其是当它们的返回值不...

    第7-9章测试卷、期末测试卷(一)(二)答案.docx

    * 程序填空题:本题考查了文件输入/输出的知识点,包括fopen函数、fread函数和fwrite函数的使用。 * 程序设计题:本题考查了文件复制的知识点,包括文件指针的使用和文件操作的知识点。 期末综合测试卷(一) 1. ...

    C语言fseek、fread、fwrite读写二进制文件

    在C语言中,读写二进制文件是通过标准库函数`fopen`, `fread`, `fwrite`, 和 `fseek`...理解并熟练运用`fopen`, `fseek`, `fread`, 和 `fwrite`等函数,能让你更有效地处理各种二进制数据,实现高效且可靠的文件操作。

    计算机二级C语言文件考点.docx

    * fread函数和fwrite函数:读写二进制文件 这些函数的使用需要了解其格式和参数,以便正确地使用它们。同时,需要清楚地了解这些函数是用于二进制文件还是文本文件,以避免错误的使用。 计算机二级C语言文件考点是...

    为什么fwrite写文件后,用fread读出来文件长度是0,即fread读不出数据

    - 编程时应检查 `fwrite` 和 `fread` 的返回值,这些函数会返回实际写入或读取的字节数。如果返回值与预期不符,说明可能出现了错误,需要根据错误码进行调试。 为解决这个问题,你可以按照以下步骤进行: 1. ...

    C语言工程设计03输入输出.pptx

    FILE类型的文件指针可以指向文件的开始、当前位置或结束位置,我们可以使用fopen函数来打开文件,使用fclose函数来关闭文件,使用fread函数和fwrite函数来读取和写入文件。 例如: #include void main(){ FILE ...

    2020年计算机等级C语言考试考点解析:文件.docx

    * fread函数和fwrite函数:二进制文件输入和输出。 这些函数都有其特定的用途和格式,例如: * feof函数的格式为:`int feof(FILE *stream)`,它返回一个整数值,表示文件是否到达末尾。 * fseek函数的格式为:`...

    C语言程序编码设计完美版资料.ppt

    C语言提供了多种文件读写函数,例如fread函数和fwrite函数。读写文件时,需要指定文件指针、缓冲区大小和读写模式。 8.2.4 文件的定位 文件的定位是指文件指针的移动,C语言提供了多种文件定位函数,例如fseek函数...

    2022年计算机科学与技术、软件工程(专升本)专业课考试大纲.docx

    了解二进制文件的数据块读写〔fread 函数和 fwrite 函数〕;了解文件的定位〔rewind 函数和 fseek 函数〕。学生需要掌握 C 语言中的文件操作,并能正确地使用它们。 此外,本考试大纲还涵盖了树、集合、符号表、...

    C语言-第十二章完整版资料.ppt

    在C语言中,文本文件操作可以使用fgetc函数和fputc函数,二进制文件操作可以使用fread函数和fwrite函数。 C语言中的文件操作还可以分为高级输入输出和低级输入输出。高级输入输出是指使用缓冲文件系统对文件进行...

    c++相关技术 fread

    C++ fread 函数详解 fread 函数是 C++ 语言中...在实际应用中,fread 函数可以用于读取各种类型的文件和流数据,并且可以与其他函数结合使用,例如 fwrite 函数、fseek 函数等,来实现更加复杂的文件操作和数据处理。

    poj编程指导

    文件读写章节介绍了如何使用C语言进行文件操作,包括使用fopen函数打开文件、fclose函数关闭文件,以及fscanf函数、fgetc函数、fputc函数、fgets函数、fputs函数、fread函数和fwrite函数的使用方法。此外,还介绍了...

    fgetc fputc fgets fputs fscanf fprintf fread fwrite文件操作函数使用例程代码

    fgetc fputc fgets fputs fscanf fprintf fread fwrite文件操作函数使用例程代码,在日常应用中,我们为了持续的使用一些数据,为了让数据可以在程序退出后可以保存并正常使用,引入了文件的概念和操作。下面是这些...

    C语言-思维导图源文件

    C语言-思维导图C语言思维导图 语言基础 数据类型:整数、...文件读写:fread函数、fwrite函数 文件关闭:fclose函数 异常处理 try-catch语句:try块、catch块、finally块 异常类型:runtime error、logical error

    Matlab教学资料:第八章输入输出函数.doc

    Matlab 提供了多种二进制 I/O 函数,例如 fwrite 函数和 fread 函数。 88.5.1 fwrite 函数 fwrite 函数是 Matlab 中的一个基本函数,用于将数据写入二进制文件。该函数可以将数据写入文本文件或二进制文件。fwrite...

Global site tag (gtag.js) - Google Analytics