输入无效输入后忽略其余代码

时间:2016-05-10 05:15:41

标签: c++

我已经编写了简单的代码来计算工资单,当我输入正确的输入(与其要求相关)时运行正常但是当我输入任何其他输入时它忽略所有其他代码并给出随机数作为计算和程序结束。 例如。如果我输入字母而不是每小时或小时工作的数字....请帮助!!!

#include <iostream>
#include <string>

using namespace std;

double calPayroll(double rate, double hour);

int main()
{
    char option;
    string name;
    double rate,hour;

    cout << "Please enter employee full name: ";
    getline(cin,name);

    cout << "Please enter "<<name <<"  rate per hour: ";
    cin >> rate;
    cout << "Please enter total hour " <<name << " worked: ";
    cin >> hour;
    cout <<"\n\nSalary for " << name << " is: " << calPayroll(rate,hour)      <<endl <<endl;

    cout << "Next Payroll: Press any key to continue or 'n' to exit)\n\n";
    cin >> option;
    cout<< option;

system ("pause");
return 0;
}

2 个答案:

答案 0 :(得分:0)

您应该首先将数字存储为字符串,检查它们是否为有效数字,然后仅在它们有效时将它们转换为双数。

请参阅此链接以检查字符串是否为数字:How to check if a string is a number?

对于转换,您可以使用类似atof()的函数。

答案 1 :(得分:0)

how do I validate user input as a double in C++?应该对您有用。

要验证数字输入,您可以检查流操作符>>

的返回值
if (cin >> rate) {
    // valid
}
else {
    // invalid
}