¿Cómo borrar la consola en lenguaje C?

Es una de las necesidades básicas que puede requerir un programa, es decir, borrar la consola durante el tiempo de ejecución.
Hay una función llamada clrscr() que se incluye en conio.h y es una función no estándar y está presente en el archivo de encabezado conio.h que es utilizado principalmente por compiladores de MS-DOS como Turbo C. No es parte de la biblioteca estándar de C o ISO C, ni está definido por POSIX.
Entonces, ¿qué debemos usar allí? 
Hay dos formas más de borrar la consola: 

  1. Mediante el uso del sistema («borrar»)
  2. Mediante el uso de una expresión regular «\e[1;1H\e[2J»

Ahora surge la pregunta de cuál deberíamos usar y por qué: 
Usar regex es una mejor manera. La razón es su ejecución más rápida. Al usar expresiones regulares, podemos realizar una operación de limpieza de pantalla muy rápidamente en comparación con el uso del sistema («borrar»). 
A continuación, el programa c demostrará qué tan rápido es la expresión regular entonces el sistema («borrar») 
El sistema («borrar») está incluido en stdlib.h y también funciona solo en el sistema Linux para usar esto en el sistema de uso de ventanas («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;
}

Producción:

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

NOTA: El tiempo de salida puede diferir, pero la diferencia en ambos tiempos siempre será grande. Y también ejecute este programa solo en la consola de su sistema, no aquí. 

Publicación traducida automáticamente

Artículo escrito por UPENDRA BARTWAL, y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *