Bueno, he estado investigando sobre cómo hacer esto, pero dicen que estoy ejecutando un programa que tiene un conjunto de bits de salida en el terminal, ¿cómo puedo limpiar la pantalla de dentro de mi programa para que yo pueda mantener mi programa que se ejecuta?

Sé que puedo solo tipo de clear en la terminal y se borra bien, pero como he dicho, para este programa sería más beneficioso para mí.

He encontrado algo que funciona, sin embargo, no estoy seguro de lo que es o de lo que se está haciendo.

cout << "3[2J3[1;1H";

Que funciona, pero no tengo ni idea de lo que es, si se podría explicar, que me gustaría mucho aprecio.

InformationsquelleAutor John | 2010-10-31

3 Comentarios

  1. 48

    Estos son ANSI códigos de escape. La primera de ellas (\033[2J) borra toda la pantalla (J) desde la parte superior a la inferior (2). El segundo código (\033[1;1H) posiciona el cursor en la fila 1, columna 1.

    Todos ANSI escapa de comenzar con la secuencia ESC[, tener cero o más parámetros delimitados por ;, y termina con un comando carta (J y H en su caso). \033 es el estilo C octal de la secuencia de los caracteres de escape.

    Ver aquí para la plena gira.

    • +1 yo tengo que llegar más rápido a este 😛
    • Bueno muchas gracias, justo lo que necesitaba
    • Asegúrese de marcar la pregunta como aceptado.
  2. 11

    Lugar de dependiendo de la situación de las secuencias de escape que se puede romper en situaciones inesperadas (a pesar de aceptar que el trade-off es buena, si es lo que quieres), usted puede hacer la misma cosa te gustaría hacer en tu shell:

    std::system("clear");

    Aunque por lo general (sistema) que se debe evitar, para un usuario-programa interactivo ni la extra de shell de análisis ni sobrecarga proceso es significativo. No hay ningún problema con el shell de escape, en este caso.

    Siempre se puede horquilla/exec para llamar a clara, si se quería evitar (sistema). Si usted ya está usando [n]maldiciones o de otro terminal de la biblioteca, el uso que.

    • TÉRMINO variable de entorno no se establece.
    • Por qué system() es malo: cplusplus.com/articles/j3wTURfi
    • Tenga en cuenta que en C++, debe #include <cstdlib> usar std::sistema. También, a pesar de que «claro» que funciona en bash, para una línea de comandos de Windows, usted necesita «cls».
    • (sistema) se fork(), a continuación, iniciar un bash y, a continuación, ejecute el comando. 1) Usted debe evitar system() y 2) esto no contesta a la pregunta de donde se solicita el código de C++ y no acerca de la ejecución de un sistema de comandos.
  3. 0

    Para la portabilidad debe obtener la cadena de termcap del cl (claro) capacidad de borrado de la pantalla y el cursor de la casa). (O usar std::system(«clear») como dijo Roger Pate).

    man 3 termcap (en ncurses)

    hombre 5 termcap

    set | grep TERMCAP

    • Yo no soy capaz de entender lo que puede explicar mí?

Dejar respuesta

Please enter your comment!
Please enter your name here