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

📄 ex9_11_1.cpp

📁 纯粹是学习专用~
💻 CPP
字号:
#include<fstream.h>            //<fstream.h>包含<iostream.h>
#include<string.h>
#include<iomanip.h>

class inventory{
	char Description[20];
	char No[10];
	int Quantity;
	double Cost;
	double Retail;
public:
	inventory(char* ="#",char* ="0",int =0,double =0,double =0);
	void display();
	Bdatatofile(fstream&dist);//这里直接用文件流类
	Bdatafromfile(fstream&dist);
};
inventory::inventory(char *des,char *no,int quan,double cost,double ret){
	strcpy(Description,des);
	strcpy(No,no);
	Quantity=quan;
	Cost=cost;
	Retail=ret;
}
void inventory::display(){
	cout.setf(ios::left);
	cout<<setw(20)<<Description<<setw(10)<<No;
	cout.unsetf(ios::left);//要改为右对齐,先清左对齐
	cout.setf(ios::right);
	cout<<setw(10)<<Quantity<<setw(10)<<Cost<<setw(10)<<Retail<<endl;
}
inventory::Bdatatofile(fstream&dist){
	dist.write(Description,20);
	dist.write(No,10);
	dist.write((char*)&Quantity,sizeof(int));
	dist.write((char*)&Cost,sizeof(double));
	dist.write((char*)&Retail,sizeof(double));
}
inventory::Bdatafromfile(fstream&sour){
	sour.read(Description,20);
	sour.read(No,10);
	sour.read((char*)&Quantity,sizeof(int));
	sour.read((char*)&Cost,sizeof(double));
	sour.read((char*)&Retail,sizeof(double));
}//由此可见读和写是完全对称的过程,次序决不能错

void main(){
	inventory car1("夏利2000","805637928",156,80000,105000),car2;
	inventory motor1("金城125","93612575",302,10000,13000),motor2;
	cout<<"对象car1:"<<endl;
	car1.display();
	cout<<"对象motor1:"<<endl;
	motor1.display();
	cout<<"对象car2:"<<endl;
	car2.display();
	cout<<"对象motor2:"<<endl;
	motor2.display();
	fstream datafile("d:\\Ex9_11.data",ios::in|ios::out|ios::binary);
	car1.Bdatatofile(datafile);//存car1
	datafile.seekg(ios::beg);//重定位,用seekp()完全一样
	car2.Bdatafromfile(datafile);//重写car2
	cout<<"对象car2:"<<endl;
	car2.display();
	motor1.Bdatatofile(datafile);//存motor1
	datafile.seekg(50,ios::beg);//重定位,用seekp()完全一样
	motor2.Bdatafromfile(datafile);//重写motor2
	cout<<"对象motor2:"<<endl;
	motor2.display();
	datafile.close();
}

⌨️ 快捷键说明

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