Thank you!
I actually asked a friend for help, and we ended up using the return value of getline() to break it up.
Code:
//Reads from file, calculates subtotal
void processOrder(float&sub)
{
sub=0;
do
{
fin>>code>>price>>quantity;
if (getline (fin, prodDesc) != 0)
{
total = price * quantity;
cout<<fixed<<showpoint<<setprecision(2)
<<setw(10)<<left<<code
<<setw(20)<<left<<prodDesc
<<setw(10)<<right<<price
<<setw(15)<<quantity
<<setw(15)<<total<<endl;
sub += total;
}
}while(fin);
cout<<setw(55)
<<"Total order: $"
<<setprecision(2)
<<setw(15)
<<fixed<<showpoint
<<sub<<endl;
}