fread与fwrite的简单运用

fread与fwrite的简单运用
用fread()与fwrite()将学生信息写到磁盘文件上,接着将磁盘文件上存储的学生信息显示在终端

了解fread(数组地址, 字节长度, 读取次数,文件指针 ):向指针所指的文件中每次读取字节长度数的内容存储在数组中,连续读取指定的读取次数.

了解fwrite(数组地址, 字节长度, 写入次数,文件指针 ):将数组中的内容,按照给定的字节数,写入指针所指的文件文本中,连续写入给定的次数。

#include <stdio.h>
#include <stdlib.h>
#define N 50
struct student{
	char name[10];
	char age[4];
	char adress[26];
}s[15];
void save(char *filename, int n)
{
	FILE *p;
	int i;
	if( (p=fopen(filename,"wb"))==NULL)
	{
		printf("文件打开失败");
		exit(0);
	}
	for(int i=0; i<n; i++)
		if(fwrite(&s[i],sizeof(struct student),1,p)!=1)
			printf("文件写入失败\n");
	fclose(p);	
}
void show(char *filename, int n)
{
	FILE *p;
	int i;
	if((p = fopen(filename,"rb"))==NULL)
	{
		printf("文件打开失败\n");
		exit(0);
	}
	printf("\n终端显示学生信息:\n"); 
	for(i=0; i<n; i++)
	{
		fread(&s[i],sizeof(struct student),1,p);
		printf("姓名: %s  年龄:%s  籍贯: %s\n",s[i].name,s[i].age,s[i].adress);
	}
	fclose(p); //记得打开文件,操作结束后要关闭文件,防止数据流失。
}
int main()
{
   FILE *p;
   char ch[N];
   int n;
   printf("请输入要存储的文本路劲: ");
   scanf("%s",ch);
   printf("请输入学生个数: ");
   scanf("%d",&n);
   printf("输入学生信息:\n");
   for(int i=0; i<n; i++)
   {
   	  scanf("%s%s%s",&s[i].name,&s[i].age,&s[i].adress);
   	  save(ch,n); //每次输入,就紧接着调用save()函数,将信息写入磁盘文件中
   }
   show(ch,n);
   return 0;
}

终端输入数据成功的写入磁盘文件中:
在这里插入图片描述

将文本中的内容读取出来,成功的显示在终端:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值