⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 结构数据的文件读写.cpp

📁 结构数据的读写是指从"流"文件中读取数据存入结构
💻 CPP
字号:
#include<iostream.h>
#include<stdio.h>
#include<process.h>
#include<stdlib.h>

struct student 
{
	int num;
	char name[20];
	float grade;

	//显示student 结构数据
	void show_str(student a,char *name)
	{
		cout<<name<<":"<<endl;
		cout<<a.num<<"   "<<a.name<<"    "<<a.grade;
		cout<<endl;
	}

	//main 函数测试结构数据的文件读写

	int main(void)
	{
		//声明变量
		FILE *fp;
		//声明FILE结构指针变量
		student st={1001,"张兵",56.2);
		//显示st结构数据
		show_str(st,"st");

		//打开d.dat 文件
		if (((fp=fopen("d.dat","wb+"))==NULL)
		{
			cout<<"\nCould not open the file ."<<endl;
			cout<<"Exiting program."<<endl;
				exit(1);
		}
		//用fprintf()函数写结构数据到文件
		fprintf(fp,"%d %s %f",st.num,st.name,st.grade);
		rewind(fp);//恢复读写指针的位置
		//用fscanf()函数读文件中的数据赋值给结构并显示
		student temp;
		fscanf(fp,"%d %s %f",&temp,num,temp.name,&temp.grade);
		show_str(temp,"temp");
		cout<<"-------------------------"<<endl;
		fclose(fp);//关闭文件
		//将结构数据当成数据块进行读写
		if ((fp=fopen("d1.dat","wb+"))==NULL)
		{
			cout<<"\nCould not open the file."<<endl;
			cout<<"Exiting program."<<endl;
			exit(1);
		}
		//声明结构数组并初始化

		int i;
		student starr[3]={{101,"WangPing ",88},{102,"Li",99},{103,"Xiu",54}};
			
		//显示结构数组
		for (i=0;i<3;i++)
			show_str(starr[i],"starr");
		//将结构数组当成数据块写入文件
		fwrite(starr,sizeof(student),3,fp);
		rewind(fp);//恢复读写指针的位置
		//按数据块从文件中读取数据赋值给结构数组
		student temp_arr[3];
		if(!feof(fp))//使用feof()判断文件尾
			fread(temp_arr,sizeof(student),3,fp);
		for (i=0;i<3;i++)
			show_str(temp_arr[i],"temp_arr");
		fclose(fp);//关闭文件
	}
}				

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -