1

getche() 函数没有正确终止程序,所以我想尝试 exit(int status) 函数。它在 Turbo C++ 编程语言中是如何工作的?我无法理解相关帮助模块中的解释,我寻求更好的解释……例如,函数的参数由什么组成?提前致谢!

4

6 回答 6

3

不是 100% 确定你的意思。退出函数的参数(“int status”)是一个返回给 shell 的数字。传统上,如果您的程序成功,则该值为 0;如果程序由于某种原因失败,则该值为 >0。该功能将清理各种东西,然后退出您的程序。

于 2009-03-24T18:54:21.480 回答
2

出色地。getch..像通常从键盘或标准输入中获取字符的函数。它们有时在这样的程序结束时使用

int main() {
    // do many stuff...
    // ...
    getch(); 
}

getch/getche(我不知道 turbo-c++ 中的 e 代表什么)然后用于在终端窗口关闭(通常发生在窗口中)之前为用户提供更改以查看程序的输出。请注意,getchar在 C 和 C++ 中调用了一个可移植函数,它也可以完成这项工作(另外还等待输入,但这不会造成伤害)。

但它不用于终止程序。按下一个键后,控制继续,然后在 main 完成后,程序存在。C++ 和最近的 C 版本return 0;在主函数的最后一条语句之后隐式插入一个(0 代表“成功”)。这意味着您的 main 函数将返回值0返回给操作系统。但是,如果您明确编写返回值并将另一个值放在那里,则可以返回其他值。该值是exit预期的。它终止您的程序,并将给定的值返回给操作系统。

int main() {
    // some stuff...
    exit(42);
    // other stuff (note: never reached!)
} 

该程序将向操作系统返回值 42。通常你就return 42;在那里,它具有相同的效果(*)。


(*) 好吧,不完全是:如果你有局部变量,那么如果你使用exit. 但是它们被彻底破坏了,并且在您使用时会调用析构函数return n;。因此,尽可能选择return n;主要。exit 在除 main 之外的其他函数中调用也会终止您的程序,因此可能需要使用它,因为 return there 只会从这些特定函数返回并且根本不会终止程序。

于 2009-03-24T19:14:09.593 回答
1

Exit() 的参数是一个 int,表示退出进程的原因或状态。

男孩,听起来不太好。让我再试一次:这是一个传递回启动进程(使用 CreateProcess() 或 ShellExecute() 来启动正在退出的进程的进程)的值,或者在控制台应用程序的情况下传递给可以通过 ERRORLEVEL 访问的命令 shell。

如果您正常退出,通常设置 status = 0,另一个值(如果您想要接收它的进程可能有意义)来指示错误或问题。

于 2009-03-24T18:57:39.820 回答
1

该参数是一个整数状态代码,它作为进程的退出状态传递回调用 shell。退出本身应该退出进程并清理您的进程正在使用的所有打开的资源。

于 2009-03-24T18:50:54.203 回答
0

该参数是一个整数状态代码,它作为进程的退出状态传递回调用 shell。退出本身应该退出进程并清理您的进程正在使用的所有打开的资源。

于 2009-03-25T06:43:34.630 回答
0

有关“退出”功能的更多信息

“exit”函数正常终止进程,执行定期清理以终止进程。

首先,通过调用“atexit”注册的所有函数都按照注册的相反顺序执行。然后,关闭所有流并删除临时文件,最后将控制权返回给宿主环境。

作为退出参数提供的值作为程序的返回码或退出码返回给操作系统(主机环境)。按照惯例,返回码为零表示程序成功完成。

希望这可以消除您的疑问。

于 2009-03-25T07:21:24.087 回答