1. ホーム
  2. c++

[解決済み] 関数定義は '{' トークンの前ではだめなのでしょうか?

2022-02-14 20:04:19

質問

私はゲームを作っていて、このようなコードを持っています。しかし、うまくいきません。

#include<iostream>
using namespace std;

const int MAX_ITEMS = 100;
bool running = 1;
int playerInfo[2];
void titleFunc();
int userInput = 0;

void newGameFunc();

int main() {
    titleFunc();
    newGameFunc();
    int playerLocation = 0;
    while (running) {

    }

    if (playerLocation == 1) {
        cout << "You are in a dungeon. You have just woke up from escaping the execution of your father. You see a pathway to the North, and a large gaping hole to the South.\n";
        cout << "1. Go South\n 2. Go North";
        cin >> userInput;
        if (userInput == 1) 
            playerLocation = 2;
        else 
            if (userInput == 2) 
                playerLocation = 3;
    }
    return 0;

    titleFunc() {
        cout << "\t\t\t\t---Fantasee---\n\n\n";
        cout << "\t\t\t\t     1:Play\n";

        cin >> userInput;

        if (userInput == 1) {
            newGameFunc();
        }
        else {
            running = 0;
        }
        return;
    }

    newGameFunc() {
        cout << "Welcome to Fantasee, a world of adventure and danger. \n";
        cout << "To begin, please enter your gender: \n 1. Male 2. Female";
        cin >> userInput;
        playerInfo[0] = userInput;

        cout << "And what class do you wish to be? \n 1. Wizard 2. Archer 3. Warrior 4. Trickster 5. Knight 6. Assassin";
        cin >> userInput;
        playerInfo[1] = userInput;
        playerLocation = 1;
        return;
    }
}

}
}

そして、エラーメッセージが表示されるのです。

g++ Main.cpp -o Main
Main.cpp: 関数 'int main()'内。
Main.cpp:36:17: error: expect ';' before '{' token
Main.cpp:67:1: error: expect '}' at the end of input
Edit: 間違ったエラーメッセージ
コードを現在のものに編集しました。

解決方法は?

main関数の内部で関数本体を宣言していますが、これは無効です。また、'}'を多用しすぎています。

あなたのコードは、もっとこうあるべきでしょう。

#include<iostream>
using namespace std;

const int MAX_ITEMS = 100;

bool running = 1;

int playerInfo[2];

void titleFunc();

int userInput = 0;
int playerLocation = 0;

void newGameFunc();

void titleFunc() {
    cout << "\t\t\t\t---Fantasee---\n\n\n";
    cout << "\t\t\t\t     1:Play\n";

    cin >> userInput;

    if (userInput == 1) {

        newGameFunc();

    }
    else {
        running = 0;
    }
    return;
}

void newGameFunc() {
    cout << "Welcome to Fantasee, a world of adventure and danger. \n";
    cout << "To begin, please enter your gender: \n 1. Male 2. Female";
    cin >> userInput;
    playerInfo[0] = userInput;

    cout << "And what class do you wish to be? \n 1. Wizard 2. Archer 3. Warrior 4. Trickster 5. Knight 6. Assassin";
    cin >> userInput;
    playerInfo[1] = userInput;
    playerLocation = 1;
    return;
}

int main() {

    titleFunc();

    newGameFunc();

    while (running) {

    }
    if (playerLocation == 1){
        cout << "You are in a dungeon. You have just woke up from escaping the execution of your father. You see a pathway to the North, and a large gaping hole to the South.\n";
        cout << "1. Go South\n 2. Go North";
        cin >> userInput;
        if (userInput == 1) playerLocation = 2;
        else if (userInput == 2) playerLocation = 3;
    }
    return 0;
}