📄 14-8.cpp
字号:
#include<fstream.h>
#include<iostream.h>
#include<string.h>
#define SIZE 40
class stack_room
{
char item[SIZE];
int number;
double price;
public:
stack_room(char *i,int o,double c)
{
strcpy(item,i);
number=o;
price=c;
}
void store(fstream & stream);
void retrieve(fstream & stream);
friend ostream& operator<<(ostream& stream,stack_room ob);
friend istream& operator>>(istream& stream,stack_room &ob);
};
ostream & operator<<(ostream & stream,stack_room ob)
{
stream<<ob.item<<":"<<ob.number;
stream<<"on hand at ¥"<<ob.price<<'\n';
return stream;
}
istream & operator>>(istream & stream,stack_room & ob)
{
cout<<"Enter item name:";
stream>>ob.item;
cout<<"Enter number on hand:";
stream>>ob.number;
cout<<"Enter price:";
stream>>ob.price;
return stream;
}
void stack_room::store(fstream & stream)
{
stream.write(item,SIZE);
stream.write((char *)&number,sizeof(int));
stream.write((char *)&price,sizeof(double));
}
void stack_room::retrieve(fstream & stream)
{
stream.read(item,SIZE);
stream.read((char *)&number,sizeof(int));
stream.read((char *)&price,sizeof(double));
}
main()
{
fstream inv("inv",ios::in|ios::out);
int i;
stack_room English("English",6,20.55);
stack_room Computer("Computer",15,15.25);
stack_room Chinese("Chinese",23,35.56);
stack_room Mathematics("Mathematics",8,26.33);
stack_room temp("",0,0.0);
// 将信息写到文件中
English.store(inv);
Computer.store(inv);
Chinese.store(inv);
Mathematics.store(inv);
do
{
cout<<"Record # (-1 to guit):";
cin>>i;
if(i==-1)break;
inv.seekg(i*(SIZE+sizeof(int)+sizeof(double)),ios::beg);
temp.retrieve(inv);
cout<<temp;
} while(inv.good());
inv.close();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -