Enter password:
#include < iostream >
using namespace std;
class FunnyClass
{
public:
  FunnyClass();
  FunnyClass(double a, double b, double c);
  double get_a() const;
  double get_b() const;
  double get_c() const;
  FunnyClass& operator+=(const FunnyClass& right);
  FunnyClass& operator++(); // ++ a prefix
  FunnyClass  operator++(int unused); // a ++ postfix
  void print() const{
    cout << "(" << a << ", " << b << ", " << c << ")";
  }
  double compare(const FunnyClass& right) const{
    double leftvalue  = a*b - c;
    double rightvalue = right.get_a() * right.get_b() - right.get_c();
    return leftvalue - rightvalue;
  }
  // TODO: Finish overloading the rest of the operators
  // FunnyClass& operator-=( ... );
  // FunnyClass& operator--();
  // FunnyClass& operator--(int ... );
private:
  double a;
  double b;
  double c;
};
// b = (1,2,3) c = (2,3,4)
// a = left + right = (3,5,7)
FunnyClass operator+(const FunnyClass& left, const FunnyClass& right){
  FunnyClass result(left.get_a() + right.get_b(), left.get_b() + right.get_b(), left.get_c() + right.get_c());
  return result;
}
// left  = (1,2,3)
// right = (2,3,4)
// -1 > 2
bool operator>(const FunnyClass& left, const FunnyClass& right){
  double value = left.compare(right);
  if(value > 0) return true;
  return false;
}
bool operator>=(const FunnyClass& left, const FunnyClass& right){
  double value = left.compare(right);
  if(value >= 0) return true;
  return false;
}
bool operator<(const FunnyClass& left, const FunnyClass& right){
  double value = left.compare(right);
  if(value < 0) return true;
  return false;
}
bool operator<=(const FunnyClass& left, const FunnyClass& right){
  double value = left.compare(right);
  if(value <= 0) return true;
  return false;
}
FunnyClass::FunnyClass(): a(0), b(0), c(0) {}
FunnyClass::FunnyClass(double a, double b, double c): a(a), b(b), c(c) {}
double FunnyClass::get_a() const{
  return this->a;
}
double FunnyClass::get_b() const{
  return this->b;
}
double FunnyClass::get_c() const{
  return this->c;
}
FunnyClass& FunnyClass::operator+=(const FunnyClass& right){
  a += right.a;
  b += right.b;
  c += right.c;
  return *this;
}
// prefix ++a;
FunnyClass& FunnyClass::operator++(){
  ++a;
  ++b;
  ++c;
  return *this;
}
// postfix a++;
FunnyClass FunnyClass::operator++(int unused){
  FunnyClass clone(a,b,c);
  ++a;
  ++b;
  ++c;
  return clone;
}
ostream& operator<<(ostream& out, const FunnyClass& value){
  out << "(" << value.get_a() << ", " << value.get_b() << ", " << value.get_c() << ")";
  return out;
}
int main(){
  FunnyClass n1(1,2,3); // -1
  FunnyClass n2(2,3,4); // 2
  cout << ++n1 << endl;
  cout << n1 << endl;
}
      Enter password:
 
     
    
#include < iostream >
#include < fstream >
#include < vector >
#include < string >
using namespace std;
void save_template(const vector< string >& linevector){
  ifstream tempfile;
  tempfile.open("template.txt");
  if(tempfile.fail()){
    cout << "FAIL TO OPEN" << endl;
  }
  string doc = "";
  char x;
  bool first_bar = false;
  while(tempfile.get(x)){
    if(x == '|' && first_bar == false){
      first_bar = true;
    }else if(x == '|' && first_bar == true){
      first_bar = false;
    }else if(x != '|' && first_bar == true){
      // replace by the linevector
      int ind = (int) x - '0'; // this only works for single digit
      doc += linevector[ind-1];
    }else{
      doc += x;
    }
  }
  tempfile.close()
  ofstream outfile;
  outfile.open("JUNK " + linevector[1] + ".txt");
  outfile << doc;
  outfile.close();
}
void run_database(ifstream& infile){
  string line;
  while(getline(infile, line)){
    // line = "Mr.|Harry|Hacker|1105 Torre Ave.|Cupertino|CA|95014 "
    vector< string > linevector;
    while(line.find("|") != string::npos){ // if you cannot find "|", then stop the while loop
      linevector.push_back(line.substr(0, line.find("|"))); // Mr.
      line = line.substr(line.find("|")+1); 
    }
    linevector.push_back(line);
    // linevector = {"Mr.", "Harry", ... }
    save_template(linevector);
  }
}
int main(){
  ifstream infile;
  infile.open("database.txt");
  if(infile.fail()){
    cout << "FAIL to open" << endl;
    return 1;
  }
  run_database(infile);
  infile.close();
}