首页 > 解决方案 > “程序以退出代码结束:0”出现在我的输出开头?

问题描述

所以我的代码基本上应该读取后缀表达式并计算值。到目前为止,这是我的代码,它似乎可以工作,只是每次我在 Xcode 上运行它时,“程序以退出代码结束:0”出现在我的输出开头。我的代码中是否存在导致此问题的错误?此外,我应该只让用户输入同名变量的值一次,但总是必须输入两次。有没有简单的解决方法?

这是我的代码

#include <iostream>
#include <string>
#include <stack>
#include <sstream>

int main()
{

char input = 'y';
while (input == 'y')
{
    std::string expression;
    std::stack<int> myStack;

    std::cout << "Enter a postfix expression with a $ at the end: ";
    std::getline(std::cin,expression);


    int i = 0;


    std::istringstream ss(expression);
    while (ss >> expression)
    {
        if (expression[i] >= 'a' && expression[i] <= 'z')
        {
            int number = 0;
            std::cout << "Enter the value of " << expression << ": ";
            std::cin >> number;
            myStack.push(number);
        }
        else if (expression[i] >= '0' && expression[i] <= '9')
        {
            int number = std::stoi(expression);
            myStack.push(number);
        }
        else
        {

            switch (expression[i]) {
                case '+':
                {
                    int number1 = myStack.top();
                    myStack.pop();
                    int number2 = myStack.top();
                    myStack.pop();

                    int total = number1 + number2;
                    myStack.push(total);
                    break;
                }

                case '-':
                {
                    int number1 = myStack.top();
                    myStack.pop();
                    int number2 = myStack.top();
                    myStack.pop();

                    int total = number1 - number2;
                    myStack.push(total);
                    break;
                }

                case '*':
                {
                    int number1 = myStack.top();
                    myStack.pop();
                    int number2 = myStack.top();
                    myStack.pop();

                    int total = number1 * number2;
                    myStack.push(total);
                    break;
                }

                case '/':
                {
                    int number1 = myStack.top();
                    myStack.pop();
                    int number2 = myStack.top();
                    myStack.pop();

                    int total = number1 / number2;
                    myStack.push(total);
                    break;
                }
            }
        }
    }

    std::cout << "\tFinal value = " << myStack.top() << std::endl;

    std::cout << "Continue(y/n)? ";
    std::cin >> input;

    std::cin.clear();
    std::cin.ignore();


}
return 0;
}

这是输入'n'终止程序后的输出

标签: c++xcode

解决方案


这个问题似乎在 Xcode 版本 10.1 beta 3 (10O45e) 中为我解决了


推荐阅读