Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;如果输入不是数字,则循环无限_C++ - Fatal编程技术网

C++ C++;如果输入不是数字,则循环无限

C++ C++;如果输入不是数字,则循环无限,c++,C++,如果输入不是一个数字,我的程序就会进入一个无止境的循环。如何解决这个问题?还希望为用户添加一种方法,以键入*退出程序。我一直想把它弄得一团糟,但运气不好。谢谢 #include <iostream>; using namespace std; void newBalance(int a, int& b, int& c, int& d, int& e, int& f); void accountInfo(int a, int& b,

如果输入不是一个数字,我的程序就会进入一个无止境的循环。如何解决这个问题?还希望为用户添加一种方法,以键入*退出程序。我一直想把它弄得一团糟,但运气不好。谢谢

#include <iostream>;

using namespace std;

void newBalance(int a, int& b, int& c, int& d, int& e, int& f);
void accountInfo(int a, int& b, int& c, int& d, int& e, int& f);

int main()
{
int accountNumberEnter;
int beginBalanceB = 0;
int itemsChargedC = 0;
int creditsD = 0;
int credLimitE = 0;
int balanceD = 0;
int exitLoop = true;

while (exitLoop = true)
{
    cout << "Search for an account number: ";
    cin >> accountNumberEnter;
    cout << endl;

    switch (accountNumberEnter)
    {
    case 1001:
        beginBalanceB = 100;
        credLimitE = 500;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC,     creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC,     creditsD, credLimitE, balanceD);
        break;
    case 1002:
        beginBalanceB = 200;
        credLimitE = 1000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1003:
        beginBalanceB = 700;
        credLimitE = 750;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1004:
        beginBalanceB = 1500;
        credLimitE = 1000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1005:
        beginBalanceB = 565;
        credLimitE = 2000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1006:
        beginBalanceB = 1500;
        credLimitE = 1000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1007:
        beginBalanceB = 5000;
        credLimitE = 10000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1008:
        beginBalanceB = 0;
        credLimitE = 850;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1009:
        beginBalanceB = 85;
        credLimitE = 1000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1010:
        beginBalanceB = 250;
        credLimitE = 3000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    default:
        cout << "Account not found.\n" << endl;
        exitLoop != true;

    }
    }


system("pause");

return 0;

}

void accountInfo(int a, int& b, int& c, int& d, int& e, int& f)
{
cout << "Account found\n" << endl;

cout << "Current balance: $"<< b <<"\n" << endl;

cout << "Enter items charged: $";
cin >> c;
cout << endl;

cout << "Enter credits: $";
cin >> d;
cout << endl;
}

void newBalance(int a, int& b, int& c, int& d, int& e, int& f)
{

    int balance;
    int account;

    balance = b + c - d;

    if (balance < 0)
    {
        cout << "Error. New balance is less than 0. Please try again.\n" <<     endl;
    }
    else
    {
        cout << "Account Number: " << a << endl;
        cout << "Beginning Balance: $" << b << endl;
        cout << "Items Charged: $" << c << endl;
        cout << "Credits Applied: $" << d << endl;
        cout << "New Balance: $" << balance << endl;
        cout << "Credit Limit: $" << e <<"\n" << endl;

        if (balance > e)
            cout << "\n***Credit Limit Exceeded***" << endl;
    }

}
#包括;
使用名称空间std;
无效新天平(内部a、内部b、内部c、内部d、内部e、内部f);
无效会计信息(内部a、内部b、内部c、内部d、内部e、内部f);
int main()
{
国际会计数字出租人;
int beginBalanceB=0;
int itemshargedc=0;
int-creditsD=0;
int credLimitE=0;
整数平衡=0;
int exitLoop=true;
while(exitLoop=true)
{
cout>accountnumberrenter;
cout此处:

正在测试
exitLoop
是否不等于true。应为

exitLoop = false;

也许将exitLoop!=真改为exitLoop=!truewhile(exitLoop==真)//需要“==”{我看到的是赋值而不是条件很多。不过,我不认为我经常看到条件而不是赋值!!!@egggvans:AKA…
false
…在“你在”时检查循环条件。。。。
exitLoop = false;