📜  如何清除C语言的控制台?

📅  最后修改于: 2021-05-26 01:08:28             🧑  作者: Mango

这是程序可能需要的基本需求之一,即在执行期间清除控制台。
conio.h中包含一个名为clrscr()的函数,这是一个非标准函数,并且存在于conio.h头文件中,该头文件主要由Turbo-C之类的MS-DOS编译器使用。它不属于C标准库或ISO C,也不是POSIX定义的。
那么我们应该在那里使用什么呢?
还有两种清除控制台的方法:

  1. 通过使用系统(“清除”)
  2. 通过使用正则表达式“ \ e [1; 1H \ e [2J””

现在出现了问题,我们应该使用哪个以及为什么:
使用正则表达式是更好的方法,原因是执行速度更快。与使用system(“ clear”)相比,通过使用regex,我们可以非常快速地执行清晰的屏幕操作。
下面的c程序将演示系统正则表达式的运行速度(“清除”)
系统(“ clear”)包含在stdlib.h中,并且也仅在linux系统中才能在窗口使用系统(“ cls”)中使用。

C
// C program for clearing console and
// comparing two different methods
#include 
#include 
#include 
int main()
{
    int i = 0;
    double time_taken;
    clock_t t1, t2;
 
    // a loop for showing geeks for geeks
    // repeating by clearing console using
    // system("clear")
 
    // Noting start time
    t1 = clock();
    for (i; i < 10000; i++)
    {
        system("clear");
        printf("geeks for geeks %d\n", i);
    }
 
    // Calculating total time taken by
    // system("clear")
    t1 = clock() - t1;
 
    i = 0;
    // Noting start time of regex
    t2 = clock();
    for (i; i < 10000; i++)
    {
        printf("\e[1;1H\e[2J");
        printf("geeks for geeks %d\n", i);
    }
 
    // calculating total time taken by regex
    t2 = clock() - t2;
 
    // printing taken by both
    printf("Time taken by system\(\"clear\") %f\n",
           ((double)t1) / CLOCKS_PER_SEC);
    printf("Time taken regex %f",
           ((double)t2) / CLOCKS_PER_SEC);
 
    return 0;
}


输出:

geeks for geeks 9999
Time taken by system("clear") 0.934388
Time taken by regex 0.000001

注意:输出时间可能会有所不同,但是两者的时间总会很大。而且,请仅在系统控制台上运行此程序,而不要在此处运行。

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。