我想知道如何以及何时可以像我书中的程序一样使用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");
}
当我运行它时,它显示ERROR:调用未定义的函数exit()。
另外,我想知道如何创建一个选项来关闭程序运行的窗口?例如,我制作了一个菜单驱动的程序,它有几个选项,其中一个是“退出菜单”。如何退出程序(即关闭窗口)?
答案 0 :(得分:157)
请尝试使用exit(0);
。 exit
函数需要一个整数参数。不要忘记#include <stdlib.h>
。
答案 1 :(得分:79)
exit
函数在stdlib头中声明,因此您需要
#include <stdlib.h>
位于程序顶部,以便能够使用exit
。
另请注意,exit
采用整数参数,因此您无法像exit()
那样调用它,您必须调用exit(0)
或exit(42)
。 0通常表示您的程序成功完成,非零值用作错误代码。
还有预定义的宏EXIT_SUCCESS
和EXIT_FAILURE
,例如exit(EXIT_SUCCESS);
答案 2 :(得分:11)
exit(int code);
在stdlib.h
中声明,因此您需要
#include <stdlib.h>
此外:
- 您没有exit()
的参数,需要int
,因此请提供一个。{
- 烧掉这本书,它使用的goto
(除了Linux内核黑客之外的所有人)都很糟糕,非常非常,非常糟糕。
编辑:
哦,
void main()
也很糟糕,它是:
int main(int argc, char *argv[])
答案 3 :(得分:11)
尝试man exit。
哦,并且:
#include <stdlib.h>
int main(void) {
/* ... */
if (error_occured) {
return (EXIT_FAILURE);
}
/* ... */
return (EXIT_SUCCESS);
}
答案 4 :(得分:7)
exit()
函数是一种函数,其返回类型没有参数。它由stdlib头文件定义。
您需要使用( exit(0) or exit(EXIT_SUCCESS))
或(exit(non-zero)
或exit(EXIT_FAILURE) )
。
答案 5 :(得分:4)
以下示例显示了exit()
函数的用法。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
printf("Start of the program....\n");
printf("Exiting the program....\n");
exit(0);
printf("End of the program....\n");
return 0;
}
开始该计划....
退出计划......
答案 6 :(得分:2)
您必须添加一行#include <stdlib.h>
以包含该头文件
并且exit
必须返回一个值,因此在exit(any_integer)
中分配一些整数。
答案 7 :(得分:2)
除了将退出代码返回到父进程 -
在UNIX中,我认为遗漏的一个重要方面是,exit()在第一次调用(以相反的顺序)所有那些由atexit()调用注册的函数。
详情请参阅SUSv4。
答案 8 :(得分:1)
属于系统调用组。系统调用是特殊调用,它使用户代码(您的代码)能够调用内核代码。因此,在将控制权返回给操作系统之前,退出调用会进行一些特定于操作系统的清理操作,它会终止程序。
#include <stdlib.h>
// example 1
int main(int argc, char *argv){
exit(EXIT_SUCCESS);
}
// example 2
int main(int argc, char *argv){
return 0;
}
有些编译器会从这两个示例中给出相同的操作码,但有些编译器不会。例如,来自第一函数的操作码将不包括任何类型的堆栈定位操作码,其将包括在第二示例中,类似于任何其他功能。您可以编译这两个示例并对其进行反汇编,您将看到其中的差异。
您可以使用代码的任何部分退出,并确保该进程终止。别忘了包含整数参数。
答案 9 :(得分:-2)
编写标题文件#include<process.h>
并将exit();
替换为exit(0);
。这肯定适用于Turbo C;对于我不知道的其他编译器。
答案 10 :(得分:-3)
糟糕的编程习惯。在C编程中使用goto函数是完全没有的
通过编写#include <iostream.h>
来使用exit()
函数,还包括头文件stdlib.h。还要记住exit()函数接受一个整数参数。如果程序成功完成,则使用exit(0)
并且如果程序有错误,则使用任何非零值的退出函数作为参数使用exit(-1)
。
答案 11 :(得分:-4)
在标题中加入stdlib.h
,然后在您要退出程序的任何地方致电abort();
。像这样:
switch(varName)
{
case 1:
blah blah;
case 2:
blah blah;
case 3:
abort();
}
当用户进入交换机时接受此并将其提供给您调用abort
功能的案例3。按下回车键后它会立即退出屏幕。
答案 12 :(得分:-6)
使用process.h而不是stdlib和iostream ......它将100%工作。