返回C 中的Main()

Returning to main() in c++

本文关键字:Main 中的 返回      更新时间:2023-10-16

我刚刚进入C ,我正在尝试。我想制作一个简单的程序,该程序将用户输入并调用两个功能之一,然后该功能将打印一条线,并询问用户是否想再次进行。出于某种原因,问题是C 不允许我通过简单说Main()来调用Main;有什么方法可以从另一个功能调用主函数?我正在寻找最简单的解决方案,但找不到任何东西:/

这是代码:

#include <iostream>
#include <string>
using namespace std;

int do_math() {
    cout << "Math" << endl;
    string user;
    cout << "would you like to go again? (y or n): " << endl;
    cin >> user;
    if (user == "y") {
        main();
    }
    else if (user == "n") {
        cout << "Okay, bye!";
        exit(0);
    }
    return 0;
}
int do_eng(){
    cout << "Eng";
    string user;
    cout << "would you like to go again? (y or n): " << endl;
    cin >> user;
    if (user == "y") {
        main();
    }
    else if (user == "n") {
        cout << "Okay, bye!";
        exit(0);
    }
    return 0;
}
int main() {
    string user;
    cout << "Would you like to do math or end?:";
    cin >> user;
    if (user == "math") {
        do_math();
    }
    else if (user == "end") {
        do_eng();
    }
    return 0;
}

出于某种原因,问题是C ,不允许我通过 简单说主();有什么办法从 另一个功能?我正在寻找最简单的解决方案,但是 我什么都找不到:/

不,您不想从任何代码中调用Main。

不是您应该要这样做...但是最简单的解决方案是提供一个可召唤的功能,并以最简单的方式从MAIN。

开始。

也许:

int myMain()
{
  string user;
  cout << "Would you like to do math or end?:";
  cin >> user;
  if (user == "math") {
      do_math();
  }
  else if (user == "end") {
      do_eng();
  }
  return 0;
}

int main(int, const char**) 
{
   return myMain();
}

第1课 - 尝试添加另一个间接级别(即Mymain())没有Main()

的限制

第2课 - 在这里学习有关递归的知识...似乎您可能想避免它。(即,如果您始终调用Mymain(),您的程序如何终止?

第3课 - 在我的系统上,如果程序终止,我可以在箭头上付出并琐碎地启动它。终端外壳为您做这些事情。也许这将是一种更好的方法...除非用户选择一个动作选择之一(数学,bur等)

,否则始终终止

第4课 - 研究其他程序以及其用户界面的工作原理。找到您喜欢的模型。


注意 - 我想,要使您的代码再次调用mymain(),您将需要"向前声明"该函数。

no,该标准专门从程序code中拨打main()。您想要的是main中的loop

int main()
{
    bool bContinue;
    do
    {
        /* do something */
        std::cout << "Do you want to go again?";
        cin >> bContinue;
    } while(bContinue);
}