【问题标题】:Returning from Functions C++从 C++ 函数返回
【发布时间】:2014-12-05 21:44:08
【问题描述】:

我正在做的是,我正在尝试进行基于文本的测验,并且我希望在游戏结束时,玩家可以选择退出测验或从头开始,但它会在功能。我无法在此处提供代码,因为它超过数百行,所以基本上我想要做的是能够退出程序或通过返回 int main 的顶部重新启动它,但这样做的选项是在一个函数里面。

例如:

void Answer
{
Enter 1 to exit and enter to 2 restart
//player inputs number and there is an if else statement
if number == 1
    {
    return (0);
    }
else if number == 2
    {
    return main();
}
int main()
{
question
}

提前致谢。

【问题讨论】:

  • 提示:你可以使用循环(并且不要直接调用 main)。
  • 有两个功能:第一个循环运行游戏(调用第二个函数)并提供退出游戏的可能性。注意:不能直接调用main!
  • 您应该阅读 C++ 的基本指南。它会为你解答你的问题。
  • 另外,StackOverflow不是编码服务。
  • 那我试试循环法。

标签: c++ function return


【解决方案1】:

也许您可以使用 while 循环而不使用函数。

int restart(0);

while(restart==1)
{
  // do your quizz

  cout << "Press 1 to restart, 2 to stop" << endl;
  cin << restart;

  // Some test to see if the right thing was put in the restart variable    
}

这样不行吗?

对不起,如果我误解了这个问题..

【讨论】:

    【解决方案2】:

    完成您想做的事情的唯一方法是使用 C++ 的异常(throwcatch)机制。

    在 C 中可以使用 setjmp 和 longjmp`,但安全性较低。

    通常这被认为是一个好主意,仅用于错误处理或其他异常原因,而不是正常操作。

    对于正常操作,应该允许函数堆栈通过返回来正常展开,直到一个返回到 main 中。

    【讨论】:

    • 他也可以使用goto :)(我只是在开玩笑,不要那样做!)
    • 目前还不是唯一的方法。
    • 是的,我最近才发现 goto 不应该再使用了。 @doron 我才1个半月前才开始编程,所以我仍然不知道如何使用异常机制。
    • goto 无法跳出函数。
    猜你喜欢
    • 2016-08-28
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2015-02-14
    • 2021-08-09
    相关资源
    最近更新 更多