如何用C语言退出控制台屏幕



我正试图退出控制台屏幕,即关闭屏幕,我可以使用什么命令来实现这一点。

void main()
{
int n;
printf("Please enter a number less than 5");
scanf("%d", &n);
if(n <= 5)
printf("good");
else
{
printf("You entered a number above so the program will exit");
//here i need to call a function or use a command that will close
// the console screen;
}
}

感谢提供的任何帮助

C11标准n1570不知道"控制台屏幕"(我猜你说的是运行程序的终端模拟器)。请注意,C11没有提到"屏幕"或"键盘"(只有标准流,stdout通常是而不是"控制台"),许多计算机(例如,大多数互联网服务器或超级计算机,甚至你的手机…)都没有这两种功能。此外,你的程序可以通过重定向或管道运行(即使在Windows上),然后它没有控制台(所以在这种常见的情况下,你的问题没有任何意义)。

因此,一般来说,没有办法以标准的方式做您想做的事情(因为这没有任何意义)。

也许您的操作系统提供了一些(特定于操作系统的)方法来实现这一点。因此,请调查与您的系统相关的操作系统API(例如,Windows上的WinAPI或Linux系统调用-在系统调用(2)中列出)。

也许您想使用一些与终端相关的库,如ncurses。

如果您的终端遵循ANSI转义码约定,您可能会遵循它们。

否则,请考虑让您的程序具有一些GUI。为此,您实际上需要一些小部件工具包(如Qt、GTK等)

您还可以考虑与桌面环境进行一些进程间通信。如何做到这一点(甚至其可能性)是非常特定于操作系统和桌面的,可能与会话管理有关。

顺便说一句,记住stdout经常被缓冲(也许还有行缓冲)。您最好使用n和/或调用fflush来结束printf控制字符串。

在窗口操作系统或执行环境中,控制台窗口将在进程终止时立即关闭,因此不清楚您在这里问什么,因为在您的示例中,无论输入什么输入,程序都会终止。

如果您从IDE运行代码,IDE通常会创建一个控制台进程,并在其中启动代码。在这种情况下,控制台不是应用程序"拥有"的,而是作为子进程执行的;在这种情况下,窗口将保持打开,直到IDE启动的父进程关闭。类似地,如果您从命令shell启动程序。即使有可能,一个进程也试图关闭其父进程,这可能是不合理的行为。

当进程继续运行时,可以"隐藏">控制台窗口,这可能是您所要求的;这样做的方式是特定于平台的,您没有具体说明;对于Windows来说,这样的问题将是Win32编程隐藏控制台窗口的重复。然而,如果不是直接启动进程,而是从其他控制台进程启动进程,则这些方法很可能不起作用。

在Windows中,您可以简单地在记事本上编写代码,然后通过命令提示符(cmd.exe)编译并运行它。如果您安装了GCC作为编译器(带有所有需要的包),则将您的主.c文件编译为:

gcc main.c-o main.exe

如果一切顺利,当您运行";"main";,将有您所有的输出,您可以关闭或进行更多编辑。再见

PS EDIT——我明白你的意思:当你从自己启动.exe时,窗口会关闭,而不会对消息感到满意。你可以在最后一个花括号之前添加这样的解决方法:

printf("Press any keyn");
scanf("%d");

}

因此,输出窗口在关闭之前仍将等待另一个输入。

您可以在此处查看其他信息,例如:https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html

再见

最新更新