-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 の一部になり、最初の起動時に実行されます。これが、おそらくあなたがそれに気付いていない理由です。

C++ ではローカル関数の定義が違法であるため、移動st()する必要があります。main

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 に答える