C ++指数计算器错误

c++ exponential calculator bug

我是编程新手,我通过制作一个计算器给自己一个挑战,但是当我想多次使用指数模式时,它会将指数相加而不是重新启动整个过程,任何人都可以提供帮助我请?另外,如果您对初学者的未来项目有一些提示,或者您有一些提示,请与我分享,非常感谢! :) 这是我的代码:

int main()
{
long double num1,num2,result;
char op,redo;
result = 1;
do
{
    cout << "Give the operation! (e.g.: 2+3) aviable: + - * / ^" << endl;
    cin >> num1 >> op >> num2;
    if (op == '+' || '-' || '*' || '/' || '^') 
    {
        switch (op)
        {
            case '+':
                cout << endl << "Your solution is:" << num1 + num2;
                break;

            case '-':
                cout << endl << "Your solution is:" << num1 - num2;
                break;

            case '*':
                cout << endl << "Your solution is:" << num1 * num2;
                break;

            case '/':
                if (num2 != 0)
                {
                    cout << endl << "Your solution is:" << num1 / num2;
                }
                else
                {
                    cout << endl << "We cannot devide by 0!";
                }
                break;

            case '^':
                while (num2 != 0) {
                    result *= num1;
                    --num2;
                }

                cout << "Your solution is:" << result;
                break;

            default:
                cout << "This operation cannot be processed!";
                break;

        }
    }
    else
    {
        cout << "Wrong operation!";
    }

    cout << endl << "Would you like to restart? [Y/N]" << endl;
    cin >> redo;
} while (redo == 'y' || redo == 'Y');


return 0;
}

每次进入循环前都需要重新设置result:

case '^':
   result = 1;                // <--- add this
   while (num2 != 0) {
       result *= num1;
       --num2;
   }