使用exit()函数

Kra*_*ken 94 c

我想知道如何以及何时可以exit()像我书中的程序一样使用函数:

#include<stdio.h>

void main()
{
    int goals;
    printf("enter number of goals scored");
    scanf("%d",&goals);

    if(goals<=5)
        goto sos;
    else
    {
        printf("hehe");
        exit( );
    }
    sos:
    printf("to err is human");
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它显示ERROR:调用未定义的函数exit().

另外,我想知道如何创建一个选项来关闭程序运行的窗口?例如,我制作了一个菜单驱动的程序,它有几个选项,其中一个是"退出菜单".如何退出程序(即关闭窗口)?

Kla*_*sen 160

请尝试使用exit(0);.该exit函数需要一个整数参数.别忘了#include <stdlib.h>.

  • [手册页](http://man7.org/linux/man-pages/man3/exit.3.html) 说“` EXIT_SUCCESS 和 EXIT_FAILURE 的使用比使用 0 和一些非零值,如 1 或 -1。`" (4认同)

Tyl*_*nry 80

exit函数在stdlib头中声明,因此您需要

#include <stdlib.h>
Run Code Online (Sandbox Code Playgroud)

在您的程序的顶部能够使用exit.

另请注意,exit它采用整数参数,因此您无法调用它exit(),您必须调用exit(0)exit(42).0通常表示您的程序成功完成,非零值用作错误代码.

也有预定义的宏EXIT_SUCCESSEXIT_FAILURE,如exit(EXIT_SUCCESS);

  • +1不仅提到`exit`采用整数参数,而且解释了为什么它需要一个整数参数,而一些编译器需要显式的`#include <stdlib.h>`. (3认同)

Mor*_*dur 11

exit(int code);声明,stdlib.h所以你需要一个

#include <stdlib.h>
Run Code Online (Sandbox Code Playgroud)

另外:
- 你没有参数exit(),它需要int提供一个参数.
- 烧掉这本书,它使用的goto是(除了Linux内核黑客之外的所有人)坏,非常,非常非常糟糕.

编辑:
哦,和

void main()
Run Code Online (Sandbox Code Playgroud)

也很糟糕,它是:

int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)

  • `goto`偶尔也是正确的事情(Linux内核提供了很多这方面的例子,但它不是唯一可以使用它的代码).但OP的例子显然不是其中一个案例,所以是的,那本书应该被烧掉:). (5认同)

Ber*_*ron 11

试着退出.


哦,并且:

#include <stdlib.h>

int main(void) {
  /*  ...  */
  if (error_occured) {
    return (EXIT_FAILURE);
  }
  /*  ...  */
  return (EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)

  • 更具体地说,尝试从控制台“man 2 exit”。c 文档非常详细。 (2认同)

小智 7

exit()函数是一种函数,其返回类型没有参数.它由stdlib头文件定义.

你需要使用( exit(0) or exit(EXIT_SUCCESS))(exit(non-zero)exit(EXIT_FAILURE) ).