我的程序不会打印任何内容...

My program won't print anything...

本文关键字:任何内 打印 程序 我的      更新时间:2023-10-16

所以我正在努力构建一个模拟我们每天使用的计算器。我所展示的是我的函数中的逻辑。以前,当我有我的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;
}

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

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

然后是另一件事。您应该使用 for 而不是 while