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