Simple. Check that its not last. And you probably want to check for EOF.
istream& TransactionList::getDataFromStream( istream& is) {
//read in (unformatted) transaction list from input stream
Transaction aTransaction;
Transaction aNextTransaction;
is >> aTransaction; //read first transaction
while ( !is.eof())
{ ^^^^^^^
aTransaction = aNextTransaction;
is >> aNextTransaction; //read in next transaction
// last read didn't set EOF, so its not the last line. Add the previous.
if (!is.eof())
listOfTransactions_.addAtEnd( aTransaction); //add transaction to list of transactions
}
return is;
}