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

📄 14-8.cpp

📁 为初学者提供的最佳的C++程序设计源程序库
💻 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 + -