【问题标题】:How to clear console in C on Windows using Netbeans+ Cygwin?如何使用 Netbeans+ Cygwin 在 Windows 上清除 C 中的控制台?
【发布时间】:2017-01-02 16:44:36
【问题描述】:

我在 Internet 上进行了搜索,但大多数答案都建议使用不可用的库 conio.h。谁能给我这个问题的答案。提前致谢。

【问题讨论】:

  • 也许this可以帮助你

标签: c netbeans cygwin


【解决方案1】:

如果你在 Windows 上

system("cls");

如果你在 Linux/unix 上

system("clear");

【讨论】:

    【解决方案2】:

    你可以试试 ANSI 转义序列:

    printf("\033[2J\033[H");
    

    如果终端支持 ANSI 转义序列,这将清除终端窗口并将光标放在左上角。它在大多数 Unix X11 终端、OS/X 终端和 cygwin 终端上都能正常工作。

    如果您的 Windows 终端无法识别 ANSI 序列,请查看此页面以启用它:https://msdn.microsoft.com/en-us/library/windows/desktop/mt638032(v=vs.85).aspx

    如果您想要一个快速而肮脏的解决方案,system("clear");system("cls"); 可能会成功。

    【讨论】:

    • 它对我来说很好,但你能解释一下那条线吗?我在谷歌上搜索过,但仍然很困惑。编辑:我发现 [2J 用于擦除显示,但是 033 和 [H
    • \033 是转义字符,ESC [ H 将光标设置为起始位置,屏幕左上角。
    • 这里对转义序列有很好的解释en.wikipedia.org/wiki/ANSI_escape_code“所有序列都以字符 ESC 开头(ASCII 十进制 27/十六进制 0x1B/八进制 033)”。 “非 csi”序列之一就是执行重置的“c”。所以最基本的清屏就是:printf "\033c"
    【解决方案3】:

    当你不习惯使用清屏时试试这个:

    printf("\e[1;1H\e[2J");
    

    它是如何工作的:

    • \e[1;1H 将屏幕设置为第一行第一列。
    • 2J 用“”(空格)覆盖当前在 屏幕。

    【讨论】:

      【解决方案4】:

      试试这个:

      #include<cstlib>      //or    
      #include<stdlib.h>
      …
      
      
      …
      system("clear");
      …
      

      注意:坦率地说,我建议你开始使用最新的 Microsoft Visual Studio,你将能够毫无问题地使用 c 的所有功能。

      【讨论】:

        猜你喜欢
        • 2013-04-26
        • 2010-09-18
        • 2012-02-18
        • 1970-01-01
        • 2012-04-22
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        • 2021-12-10
        相关资源
        最近更新 更多