变量不会改变C ++中的用户输入

时间:2018-06-17 06:33:39

标签: c++ arrays c++11 switch-statement global-variables

我试图在C ++控制台中为几何定理以及 Algebra中的其他公式创建多个计算器,并且出于某种奇怪的原因程序,当选择一个选项时,变量scene不想改变(显示在calculators[]数组之前,而不是转到毕达哥拉斯定理({{1}控制台说,"按任意键继续......" 并关闭。

我已经尝试了scene 1switch()语句来导航场景管理,但我做错了什么? (顺便说一下,我仍然是一名C ++学习者,但我还有其他编程语言经验)。

感谢您的帮助。

if()

1 个答案:

答案 0 :(得分:1)

您的主要问题是scene已在声明(全局)本身声明并初始化0。这将为您提供始终相同的开关case = 0。在scene个案例中更改switch将无效。相反,您需要在scene之前输入switch

int main()
{
    selection();
    int scene = 0;
    std::cin >> scene;
    switch(scene)
    {
        ......
    }
}

其次,使用std::string代替char数组,并使用std::vector<> / std::array来存储它们。例如:

std::array<std::string,2> calculators =
{
    "Pythagorean Theorem",
    "Homer's Formula"
};

for循环可以是:

for (int i = 0; i < 2; ++i)
        std::cout << "Option " << i+1 << ": " << calculators[i] << std::endl;