C++ 我的程序不会打印任何东西。。。

C++ 我的程序不会打印任何东西。。。,c++,calculator,C++,Calculator,所以我正在研制一个模拟我们每天使用的计算器。我所展示的是我的功能中的逻辑。 以前,当我删除了我的cout行,不再显示,以查看我的y是否正确存储,我的两个变量finalNum1和finalnum2,一切正常,但当返回,尝试添加新cout行时,没有打印任何内容。如果有更多的问题,请随意指出,但这段代码还没有完成,我主要关心的是没有什么是打印,我理解这段代码仍然需要工作。如果有人能帮忙,我将不胜感激 int Calculator::calculate() { if (userInput[0]

所以我正在研制一个模拟我们每天使用的计算器。我所展示的是我的功能中的逻辑。 以前,当我删除了我的cout行,不再显示,以查看我的y是否正确存储,我的两个变量finalNum1和finalnum2,一切正常,但当返回,尝试添加新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。

您的代码从不验证posi是否有效。如果用户输入[0]!='q'| |'q'应更改为if userInput[0]!='q'| |用户输入[0]!='Q'必须有dup,但userInput[0]!='q'| |'q'错误:用户输入[0]!='q'&&userInput[0]!='Q'是你想要的。@Dai事实上,posi甚至没有声明!如果您希望它像这样打印刷新流:std::cout这是一个否定的答案。它是如何远程处理OP要求的任何内容的?这就是您可以打印整数或浮点数而不出现任何问题的方式请告诉我OP如何处理的问题是什么?如果您的实现在流式处理浮点数时遇到问题,您会遇到更大的问题。。。另外,请停止使用命名空间std;。