How can i get rid of the infinite loop in this program...



Code:
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <iomanip.h>

int main()
{
	ifstream myFile;
	double accNum, gallons;
	char code;
	double totals, discount, gst, pst, finCost;
	myFile.open("gallons2.txt",ios::nocreate);
	
	if (myFile.fail())
	{
	cout<<"File cannot be opened"<<endl;
	exit(-1);
	}
	
	myFile>>accNum>>code>>gallons;
	
	while (!myFile.eof())
	{
		switch (code)
		{
		 case 'H':
		totals = (0.0005 * gallons) + 5;
			if ((totals > 75) && (totals < 1000))
				discount = totals * 0.1;
			else if (totals > 20)
				discount = totals * 0.05;
			else
				discount = 0;
		break;
		
		case 'C':
		totals = (0.00025 * (gallons - 4000000)) + 1000;
		discount = 0;
		break;
		
		case 'I':
		discount = 0;
		if (gallons <= 4000000)
			totals = 1000;	
		else if ((gallons > 4000000) && (gallons <= 10000000))
			totals = 2000;
		else
			totals = 3000;
		break;
		default:
		cout<<"Error Input";			
		break;
		}
		gst = (totals - discount) * 0.07;
		pst = (totals - discount) * 0.075;
		finCost = (totals - discount) + gst +pst;
		cout<<accNum<<code<<gallons<<totals<<discount<<gst<<pst<<finCost;
	}					
	
		
		cout<<"Account"<<endl;
		cout<<"Number  "<<"Code  "<<"Consumption  "<<"Total  "<<"Discount  "<<"GST  "<<"PST  "<<"Final Cost  "<<endl;
	myFile.close();
	return 0;
}