¿Cómo implementamos clrscr()
? Búsqueda en Google descubrí que \x1b[2j
se puede utilizar para borrar la pantalla, pero ¿cómo la usamos?¿Cómo borrar la pantalla con x1b [2j?
Respuesta
La biblioteca C estándar no proporciona una forma de borrar la pantalla. Necesita una biblioteca dependiente del sistema operativo para eso.
Bajo DOS y Windows, para un programa que se ejecuta en una consola de DOS o Windows, puede utilizar las extensiones de DOS/Windows proporcionadas en la biblioteca central C se suministra con el sistema operativo:
#include <conio.h>
clrscr();
bajo sistemas Unix, puede usar la biblioteca de curses, que se proporciona con el sistema operativo. Los puertos de la biblioteca de curses existen para la mayoría de los sistemas operativos, incluido Windows, por lo que este es el camino a seguir en un programa portátil. Enlazar su programa con -lcurses
y utilizar
#include <curses.h>
erase();
Algunos terminales y emuladores de terminal realizan funciones especiales, tales como la limpieza de la pantalla cuando reciben una secuencia de escape. La mayoría de los terminales siguen el estándar ANSI que define un número de secuencias de escape; "\x1b[2J"
es una secuencia de este tipo, y su efecto es borrar la pantalla. Tenga en cuenta el capital J
. En tal terminal, fputs("\x1b[2J", stdout)
borra la pantalla. Esto es de hecho lo que hace la biblioteca de curses cuando llama al erase()
en tal terminal; la biblioteca de curses incluye una base de datos de tipos de terminales y qué secuencias de escape usar en los diversos tipos.
Si está seguro de que es la secuencia de control que desee utilizar y, a continuación:
#include <stdio.h>
int main(void)
{
fputs("\x1b[2j", stdout);
return(0);
}
Esto omite deliberadamente el salto de línea - pero podría ser mejor con la adición de una después de la 'j'. Sin embargo, como señala Gilles en su answer, hay otras maneras de hacerlo que tienen ventajas en comparación con esta solución.
doesnt work :(:( –
@fahad: what platform Si tiene un DOS antiguo heredado, necesita tener ANSI.SYS cargado para que funcione el escape del terminal. No estoy seguro acerca de Windows. En Unix siempre debería funcionar a menos que tenga un terminal * realmente * impar con escape no estándar códigos –
windows es mi plataforma –
En Windows puede intentar
#include <tchar.h>
#include <stdio.h>
#include <windows.h>
void clrscr(void)
{
HANDLE std_out = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO cbi;
COORD origin = {0,0};
int buf_length;
GetConsoleScreenBufferInfo(std_out,&cbi);
buf_length = cbi.dwSize.X*cbi.dwSize.Y;
FillConsoleOutputCharacter(std_out,0x20,buf_length,origin,0);
FillConsoleOutputAttribute(std_out,0x07,buf_length,origin,0);
}
int _tmain(int argc, wchar_t *argv[], wchar_t *envp[])
{
DWORD i;
_tprintf(TEXT("Clear screen probe...\n"));
clrscr();
return 0;
}
"\ X1B [H \ X1B [2J" funciona en OSX.
- 1. cómo borrar la pantalla en Python
- 2. ¿Cómo borrar/eliminar pantalla/página de la pantalla en QML?
- 3. Inicialización de NCurses sin borrar la pantalla
- 4. ¿Cómo borrar la consola de la pantalla mysql en Windows?
- 5. comandos en java para borrar la pantalla
- 6. ¿Cómo borrar la pantalla en F # interactivo en VS2010?
- 7. ¿Cómo borrar la retroalimentación en el comando de pantalla?
- 8. OpenGL: ¿Cómo borrar solo una parte de la pantalla?
- 9. ¿Cómo uso getch de curses sin borrar la pantalla?
- 10. ¿Puedo calcular exp (1 + 2j) en python?
- 11. Borrar la pantalla de inicio en R/RStudio
- 12. Fondo de pantalla en vivo - "Establecer fondo de pantalla" - Necesito evento para borrar la memoria
- 13. iOS6 - ¿Cómo borrar la memoria caché de la aplicación de pantalla principal/independiente?
- 14. ¿Cómo borrar la consola programáticamente en Xcode?
- 15. Borrar la página HTML con JavaScript
- 16. ¿Cómo puedo eliminar la pantalla con Perl?
- 17. ¿Cómo detectar la pantalla actual con Java?
- 18. ¿Cómo borrar toda la matriz?
- 19. Borrar la lista desplegable con JQuery
- 20. ¿Cómo borrar la caché del navegador con php?
- 21. Cómo borrar un objeto id con marco de la entidad
- 22. Cómo borrar todas las cookies con jQuery
- 23. Borrar con pincel en GLPaint
- 24. cómo borrar la casilla de verificación
- 25. ¿Cómo borrar la consola en C# .net?
- 26. ¿Cómo borrar la caché de los piñones?
- 27. ¿Cómo borrar Javascript de la caché IE8?
- 28. ¿Cómo borrar ImageView correctamente?
- 29. ¿Cómo borrar la línea de comando en Octave?
- 30. borrar la pantalla cuando el archivo se trunca mientras se usa `tail -f`
depende de su sistema operativo y el entorno en general. –
Me pregunto si esta pregunta tiene sentido. Ya sea que cree una aplicación de "pantalla completa", entonces ya sabrá (dependiente de la plataforma, etc.) cómo colocar el cursor, y mucho más, incluso cómo borrar la pantalla. O bien, crea una utilidad de línea cmd, que se ve bien si solo usa saltos de línea y quizás espacios inversos o CR (para recuentos de línea que vuelven a dibujarse en el mismo lugar, por ejemplo) ... – TheBlastOne