-1

好的,所以我环顾四周,但我仍然不太明白为什么会收到此错误。我的代码包含在下面。我有一些运行良好的旧代码。然后我决定让它在每次打开应用程序时执行多个计算。在修复了其他几个错误后,弹出了这个错误。在我意识到我需要 ' ' 围绕 y 之后,这个突然出现了。

#include "stdafx.h"
#include <cstdio>
#include <cstdlib>
#include <iostream>

using namespace std;
int main(int nNumberofArgs, char* pszArgs[])

{

    int x;
    int y;
    int result;
    char z;
    char a = 'y';

    char st();
    {
        cout << ("Do another calculation?: y/n");
        cin >> a;
        if (a = 'n')
        {
            system("PAUSE");
            return 0;
        }
    }


    while (a = 'y');
    {
        cout << "Symbol here: " <<endl;
        cin >> z;
        cout << "Number 1: " <<endl;
        cin >> y;
        cout << "Number 2: " <<endl;
        cin >> x;
        if (z == '*')
        {
            result = x * y;
            cout << "Answer:" << result <<endl;
            st();
        }
        else if (z == '/')
        {
            result = x * y;
            cout << "Answer:" << result <<endl;
            st();
        }
        else if (z == '-')
        {
            result = x / y;
            cout << "Answer:" << result <<endl;
            st();
        }
        else if (z == '+')
        {
            result = x + y;
            cout << "Answer:" << result <<endl;
            st();
        }
        else if (z == '%')
        {
            result = y % x;
            cout << "Answer:" << result <<endl;
            st();
        }
    }
}
4

1 回答 1

1

您在 . 末尾有一个分号char st()。这声明了函数但没有定义它。声明之后的代码成为 main 的一部分,并在您第一次启动时执行。这就是为什么你可能没有注意到它。

您需要st()移出,main因为局部函数定义在 C++ 中是非法的。

using namespace std;

char st()
{
    cout << ("Do another calculation?: y/n");
    cin >> a;
    if (a = 'n')
    {
        system("PAUSE");
        return 0;
    }
}


int main(int nNumberofArgs, char* pszArgs[])
{
    int x;
    int y;

    // ... rest of your code

    return 0;
}
于 2013-05-19T04:19:23.697 回答