1

最初にファイルを作成して書き込もうとしていますが、「<<」を使用してファイルに書き込めません。2番目の部分では、ファイルからデータを読み込もうとしていますが、データをオブジェクトに保存して、後でプログラムでオブジェクトを使用できるようにしたいので、それが正しい方法であるかどうかはわかりません。どんな助けや提案も大歓迎です。前もって感謝します

void Employee::writeData(ofstream&)
{
  Employee joe(37," ""Joe Brown"," ""123 Main ST"," ""123-6788", 45, 10.00);
  Employee sam(21,"\nSam Jones", "\n 45 East State", "\n661-9000",30,12.00);
  Employee mary(15, "\nMary Smith","\n12 High Street","\n401-8900",40, 15.00);

  ofstream outputStream;
  outputStream.open("theDatafile.txt");
  outputStream << joe << endl << sam << endl << mary << endl;
  //it says that no operator "<<"matches this operands, operands types are std::ofstream<<employee
  outputStream.close();
  cout<<"The file has been created"<<endl;
}

void Employee::readData(ifstream&)
{
  //here im trying to open the file created and read the data from it, but I'm strugguling to figure out how to read the data and save it into de class objects.
  string joe;
  string sam;
  string mary;

  ifstream inputStream;
  inputStream.open("theDatafile.txt");
  getline(inputStream, joe);
  getline(inputStream, sam);
  getline(inputStream, mary);
  inputStream.close();
}
4

1 に答える 1

3

受け取るエラーは、従業員クラスの出力演算子を定義する必要があるためです。

ostream& operator<<(ostream& _os, const Employee& _e) {
  //do all the output as necessary: _os << _e.variable;
}

入力演算子も実装することをお勧めします。

istream& operator>>(istream& _is, Employee& _e) {
  //get all the data: _is >> _e.variable;
}

これらのフレンド関数をクラス Employee に作成する必要があります。

class Employee {
  public:
    //....
    friend ostream& operator<<(ostream& _os, const Employee& _e);
    friend istream& operator>>(istream& _is, Employee& _e);
    //....
}
于 2013-10-21T21:30:39.240 に答える