>>774 単語の検索機能だけ付けた。
#define DELIM '\t'
struct data{ string tango, yomi, imi; };
class dictionary{
protected: list<data> m_data;
public:
  void add(data &d){ m_data.push_back(d); }
  bool read(const char *file){
  fstream f(file, ios::in);
    if(f.fail()){ return false; } m_data.clear();
    data d;
    while(!f.eof()){
      getline(f, d.tango, DELIM); getline(f, d.yomi, DELIM); getline(f, d.imi, DELIM); m_data.push_back(d);
    }
    f.close(); return true;
  }
  bool write(const char *file){
  fstream f(file, ios::out);
    if(f.fail()){ return false; }
    for(list<data>::iterator i = m_data.begin(); i != m_data.end(); ++i)
      f << i->tango << DELIM << i->yomi << DELIM << i->imi << DELIM;
    f.close(); return true;
  }
  void show(void){
    for(list<data>::iterator i = m_data.begin(); i != m_data.end(); ++i)
      cout << "単語:" << i->tango << "\n" << "読み:" << i->yomi << "\n" << "意味:" << i->imi << "\n" << endl;
  }
  list<data>::iterator find(string tango){
    for(list<data>::iterator i = m_data.begin(); i != m_data.end(); ++i){ if(i->tango == tango){ return i; } }
    return NULL;
  }
};