我的节目不打印任何东西......

时间:2017-04-07 04:23:39

标签: c++ calculator

所以我正致力于构建一个模仿我们日常使用的计算器的计算器。我所展示的是我的功能中的逻辑。 以前当我有我的cout线(删除,不再显示),看看我的" y"正在存储,我的两个变量,finalNum1& 2,一切正常,但回去时,尝试添加新的cout线,没有任何打印。如果还有更多问题,请随意指出它们,但是这段代码还没有完成,我主要关注的是打印是什么,我理解这段代码仍然需要工作。如果有人能提供帮助,我们将不胜感激!

int Calculator::calculate()
{
    if (userInput[0] != 'q' || 'Q') // Checks for user input "Quit" or "quit"
    {

        int stringSize;
        std::cin >> userInput;      // User Input

        stringSize = userInput.length();
        int y = 0;
        while (y < stringSize)
        {
            if (isdigit(userInput[y]))
            {}
            else
            {
                posi = y;
            }
            y++;
        }
        first = userInput.substr(0,posi);
        second = userInput.substr(posi+1,y);
        finalNum1 = std::stoi(first);       // Sigbart error
        finalNum2 = std::stoi(second);
        std::cout << finalNum1 + finalNum2; // won't print 

        switch (userInput[posi])
        {
            case '+':
                std::cout << finalNum1 + finalNum2;
                break;

            case '-':
                std::cout << finalNum1 - finalNum2;
                break;

            case '*':
                std::cout << finalNum1 * finalNum2;
                break;

            case '/':
                std::cout << finalNum1 / finalNum2;
                break;

            case '%':
                std::cout << finalNum1 % finalNum2;
                break;
        }



    }

    else
        std::cout << "Goodbye";
    return 0;
}

1 个答案:

答案 0 :(得分:-2)

对于打印整数,如果将它们转换为字符串则更容易。

using namespace std;

float tmp = finalNumber1 + finalNumber2;
string out = to_string(tmp);
cout << tmp << endl;

然后另一件事。您应该使用for代替while