如何用C语言清除控制台?

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

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

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

C

// C program for clearing console and
// comparing two different methods
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
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" , 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;1He[2J" );
printf ( "geeks for geeks %d" , i);
}
// calculating total time taken by regex
t2 = clock () - t2;
// printing taken by both
printf ( "Time taken by system("clear") %f" ,
(( double )t1) / CLOCKS_PER_SEC);
printf ( "Time taken regex %f" ,
(( double )t2) / CLOCKS_PER_SEC);
return 0;
}


输出:

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

注: 输出时间可能不同,但两种时间的差异始终很大。并且只在你的系统控制台上运行这个程序,而不是在这里。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享