小编Ann*_*Guy的帖子

C++外部枚举

我已经发现了这个:c ++中的extern enum 但它对我帮助不大.我有一个config.h和config.hi中的config.cpp有我的枚举:

#ifndef CONFIG_H
#define CONFIG_H
extern enum Items;
#endif
Run Code Online (Sandbox Code Playgroud)

在我的config.cpp中,我声明了枚举:

#include "config.h"
 enum Items {
    PAC = 'C', GHOST = '@', FRUIT = 'o', POINTS = '.', WALL = '#', EMPTY = ' ', UNDEFINED = '+'
} fieldItems;
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试编译它,编译器会给我以下错误:

config.cpp:20:13: error: a storage class can only be specified for objects and functions
 extern enum Items;
         ^
Run Code Online (Sandbox Code Playgroud)

c++ enums extern

2
推荐指数
1
解决办法
6737
查看次数

C++,获得无限循环

我尝试使用开关做一个简单的菜单.我还想检查用户是否输入了有效的输入(只有1到4的int).输入-4或44可以正常使用此检查.但如果我输入类似"w"的东西,它会给我一个无限循环.我猜我需要另一个if/else if if(!cin)blabla else继续开关.但我不知道我是怎么做的,其他人正在开始转换.

 int menu() {
        int enter;
        bool exit = false;
        do {
            cout << "Wie soll angefangen werden: " << endl; //Enter your choice
            cout << "1 - Spiel starten" << endl; // do game();
            cout << "2 - Highscore " << endl; //do score();
            cout << "3 - Quiz starten " << endl; //do quiz();
            cout << "4 - Ende " << endl; //end the programm

        cin >> enter; 

        switch (enter) {
            case 1:
                game();
                break; …
Run Code Online (Sandbox Code Playgroud)

c++ loops menu infinite switch-statement

1
推荐指数
1
解决办法
2138
查看次数

C++返回bool总是假的?

我实施了一个测验代码,并在最后做了一个简短的更改,以检查用户是否正确回答了它.

我的if/else看起来像这样:

   if (answer == rightanswer){
        rightA = true;
    }
    else {
        rightA = false;
    }

    return rightA;
Run Code Online (Sandbox Code Playgroud)

我已经用调试器检查过,如果输入正确答案,则转到rightA = true; 并返回,所以这是有效的.但是,如果我检查rightA的值,那就是假的.如果需要,这是我用来调用测验的函数:

void gameOver(char field[HEIGHT][WIDTH], char newField[HEIGHT][WIDTH]){ // TODO

    bool rightA = false;
    showQuizDialog(rightA);
    do{
    system("cmd /c cls");

    switch (rightA){
        case true : cout << "menu"; menu(field, newField); break;
        case false : showQuizDialog(rightA); break;
        default : cout << " ";
    }
    }while(rightA == false);


    }
Run Code Online (Sandbox Code Playgroud)

我有点暗示.我可能有一些逻辑上的失败,我现在还没有看到.问候

E:我不想用代码轰炸你们.但就是这样:

bool showQuizDialog(bool rightA){

    Quiz* quiz = Quiz::getInstance();
    quiz -> askQuestion(rightA);
        return rightA;


} …
Run Code Online (Sandbox Code Playgroud)

c++ boolean return

0
推荐指数
1
解决办法
998
查看次数

标签 统计

c++ ×3

boolean ×1

enums ×1

extern ×1

infinite ×1

loops ×1

menu ×1

return ×1

switch-statement ×1