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