Hi, I'm back lol... I've made some corrections that have been given, but of course I'm still having issues

I'm getting an error message and I'm not sure how to fix it

Code:
 
C:\Users\Gavin\Desktop\Data Structures\abc hardware project 1\10.20.2015 hardware 22.cpp|60|error: cannot bind 'std::basic_istream<char>' lvalue to 'std::basic_istream<char>&&'|
please see below of what I have so far, Thank you so much!!

Code:
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
using namespace std;

const char TORD = 'O';
const char TPAY = 'P';

struct master
{
	master() : custNumber(0), custName(""), balance(0.0) {}

	int custNumber;
	string custName;
	double balance;
};

struct transactions
{
	struct Torder
	{
		Torder() : desc(""), quantity(), price() {}

		string desc;
		int quantity[];
		double price[];
	};

	struct Tpayment
	{
		Tpayment() : payment(0.0) {}
		double payment;
	};

	transactions() : transactionType(' '), custNumber(0), transNumber(0), pay(), order() {}

	char transactionType;
	int custNumber;
	int transNumber;
	Tpayment pay;
    Torder order;
};

istream& operator >>(istream& is, master& m)
{
	return (is >> m.custNumber >> m.custName >> m.balance);
}

ostream& operator <<(ostream& os, const master& ms)
{
	return (os << ms.custNumber << "  " << ms.custName << "  " << ms.balance);
}

istream& operator >>(istream& is, transactions& t)
{
	if (is >> t.transactionType >> t.custNumber >> t.transNumber)
		switch (t.transactionType) {
			case TORD:
				is >> t.order.desc >> t.order.quantity >> t.order.price;
				break;

			case TPAY:
				is >> t.pay.payment;
				break;

			default:
                                            //deal with bad transaction type
				break;
		}

	return is;
}

ostream& operator <<(ostream& os, const transactions& ts)
{
	os << ts.transNumber << "  " << ts.transactionType << "  " << ts.custNumber << "  ";

	switch (ts.transactionType) {
		case TORD:
			os << ts.order.desc << " " << ts.order.price << "  " << ts.order.quantity;
			break;

		case TPAY:
			os << ts.pay.payment;
			break;

		default:
			os << "bad type" << endl;
			break;
	}

	return os;
}
void order_Balance(double&, double&);       //add two functions
void payment_Balance(double&, double&);

int main()
{
    const string mfn = "master.txt";
    const string tfn = "trans.txt";

    ifstream mfs(mfn);
    ifstream tfs(tfn);

	if (!mfs.is_open()) {
		cerr << "Cannot open master file " << mfn << endl;
		return 1;
	}


	if (!tfs.is_open()) {
		cerr << "Cannot open trans file " << tfn << endl;
		return 2;
	}


vector<master> vm;
master ms;

	while (mfs >> ms)
		vm.push_back(ms);

vector<transactions> vt;
transactions ts;

	while (tfs >> ts)
		vt.push_back(ts);

	for (const auto& m : vm)
		cout << m << endl;

	for (const auto& t : vt)
		cout << t << endl;

cout<<ms.custName<<"\t"<<ms.custNumber<<endl<<endl;
cout<<"\t\t\t"<<ms.balance<<endl<<endl;

for(int i=0; i<vm.size(); i++)
{
       transactions:: Torder Torders;
        double total;
        total=Torders.price[i]*Torders.quantity[i];
        cout<<transactions.transNumber[i]<<"t"<<Torders.desc[i]<<"\t$"<<total<<endl;
        order_balance(total, ms.balance);

        Transactions::Tpayment Tpayments;
        cout<<transactions.TransNumber[i]<<Tpayments.Tpayment[i]<<"\t$"<<Tpayments.payment[i]<<endl;
        payment_Balance(Tpayments.Tpayment[i],new_Balance)

    cout<<"\t\t\tBalance Due"<<"\t$"<<New_Balance;
    }
}


void order_Balance(double& order, double& previous)
{
    double x;
   x=order + previous;
    return x;
}


void payment_Balance(double&order, double& previous)
{
    double y;
    y=previous - order;
    return y;
}