Стандартная библиотека C не предоставляет способ очистки экрана.Для этого вам нужна библиотека, зависящая от операционной системы.
В DOS и Windows для программы, работающей в консоли DOS или Windows, вы можете использовать расширения DOS / Windows, предоставляемые в базовой библиотеке C, поставляемой сОС:
#include <conio.h>
clrscr();
В системах Unix вы можете использовать библиотеку curses, которая поставляется вместе с ОС.Порты библиотеки curses существуют для большинства операционных систем, в том числе для Windows, так что это путь к переносимой программе.Свяжите вашу программу с -lcurses
и используйте
#include <curses.h>
erase();
Некоторые терминалы и эмуляторы терминалов выполняют специальные функции, такие как очистка экрана при получении escape-последовательности.Большинство терминалов следуют стандарту ANSI, который определяет ряд escape-последовательностей;"\x1b[2J"
- такая последовательность, и ее эффект - очистка экрана.Обратите внимание на заглавную J
.На таком терминале fputs("\x1b[2J", stdout)
очищает экран.Это фактически то, что делает библиотека curses, когда вы вызываете erase()
на таком терминале;библиотека curses включает в себя базу данных типов терминалов и какие escape-последовательности использовать для различных типов.