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

标签 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不知道“控制台屏幕”(我猜你说的是 terminal emulator 运行你的程序)。请注意,C11 没有提到“屏幕”或“键盘”(仅 standard streams ,并且通常 stdout 不是“控制台”)和许多计算机(例如大多数互联网服务器或 super 计算机,甚至你的手机...)两者都没有。此外,您的程序可以使用 redirections 运行(甚至在 Windows 上)。或在 pipeline然后它没有控制台(所以你的问题在这种常见情况下没有任何意义)。

所以总的来说,没有办法以标准方式做你想做的事情(因为它没有任何意义)。

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

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

如果您的终端遵循 ANSI escape code约定,您可以遵循它们。

否则,请考虑让您的程序具有一些 GUI 。为此,您实际上需要一些 widget toolkit (如 QtGTK 等..)

您也可以考虑一些 inter-process communication与您的desktop environment 。如何做到这一点(甚至其可能性)是非常特定于操作系统和桌面的,并且可能与session相关。管理。

顺便说一句,请记住 stdout 通常是缓冲的(也许是行缓冲的)。您最好以 \n 结束 printf 控制字符串和/或调用 fflush .

关于c - C语言如何退出控制台屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53948551/

相关文章:

c - 为什么 CPU 在字边界上访问内存?

c - memset写的对象的有效类型是什么?

c - 具有 FIFO 的结构

c - 更新 C 中的位域

c - 给定中序和前序遍历生成后序遍历

html - 能用C输出图片吗?

C 覆盖函数的返回地址导致内核 panic

c - 递归冒泡排序

c - 如何从函数返回二维字符串数组到C中的主函数? [警告]从不兼容的指针类型返回

c - 为什么 GCC 在将 void * 传递给 void** 参数时不会给出错误?