Skip to content
Related Articles

Related Articles

Improve Article

How to clear console in C language?

  • Last Updated : 28 Oct, 2020

It is one of the basic need a program may required i.e clear the console during execution time.
There is function named clrscr() which is included in conio.h and is a nonstandard function and is present in conio.h header file which is mostly used by MS-DOS compilers like Turbo C. It is not part of the C standard library or ISO C, nor is it defined by POSIX.
So what should we use there? 
There are two more ways to clear console: 

  1. By Using system(“clear”)
  2. By using a regex “\e[1;1H\e[2J”

Now question arises which should we use and why: 
Using regex is a better way.The reason is its faster execution. By using regex we can perform clear screen operation very fastly in comparison to using system(“clear”). 
Below c program will demonstrate how fast regex is then the system(“clear”) 
The system(“clear”) is included in stdlib.h and also work only in linux system to use this in window use system(“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\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;
}

Output:

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

NOTE:The output time may differ but the difference in both time will always be large.And also run this program only in your system’s console not here. 

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.



My Personal Notes arrow_drop_up
Recommended Articles
Page :