Write a program that calculates and outputs the monthly paycheck information for an employee, including all the amounts deducted from an employee’s gross pay, and the net pay that is due to the employee. The user of your program will know the employee’s name and the gross pay for the employee. Each employee has the following deductions taken from his gross pay:

Federal Income Tax:         15%
State Tax:              3.5%
Social Security + Medicare Tax: 8.5%
Health Insurance            $75

The output from your program should be structured as is displayed below:

Bill Robinson
Gross Amount: ............ $3575.00
Federal Tax: ............. $ 536.25
State Tax: ............... $ 125.13
Social Sec / Medicare: ... $ 303.88
Health Insurance: ........ $ 75.00
Net Pay: ................. $2534.75

Your program should deal with erroneous input values. Gross salary should always be a positive number. Make sure that you deal with the possibility that the user may have entered a non-numeric input value. Have your program output appropriate error messages in these cases.

using namespace std; 

int main()

    double GrossPay; 
    double FederalTax;
    double StateTax; 
    double Social_Medicare; 
    double HealthInsurance;
    int number;
    string EmployeeName; 

    cout<<"Enter EmployeeName"<<endl;

    cout<<"Enter GrossPay"<<endl;


    if(GrossPay < 0)


    cout <<"Invalid input";
    cout<< "Press any key to exit." << endl;

    FederalTax = GrossPay*.15;

    StateTax = GrossPay*.035;

    Social_Medicare = GrossPay*.085;

Here is my issue. I need to use the cin fail method when the input is a variable so it won't just exit the debugging screen. I don't quite understand how to do this? Please Help

Alicia Angner

cin.fail is not used to keep the screen open -- it is used to simply test to find out if cin succeeded or not. If you want to keep the screen open call cin.get().

Yes I know that cin.fail is not used to keep the screen open. Honestly it seems that I don't understand how to write a cin fail code in my source code. My professor says I need to do it before the if(GrossPay < 0) I've written the cin fail code, but it doesn't seem to work. Can you tell me what I'm doing wrong?

if (cin.fail()==true)
        cin.ignore(26, '\n'); 
        cout<< "Press any key to exit." << endl;

You should study this thread to find out how to flush the input stream. And you need to add cin.get() after line 5

Thank you. I added cin.get(), and it still does not seem to work.

I got it nevermind!!! Thank you so much for your help!