Programowanie w języku C/C++ » FAQ

Uniwersalne czyszczenie ekranu (Kazdy Jezyk)

Wiele razy miałem problem w pisaniu programów, bo nie miałem jakże użytecznej procedurki czyszczenia ekranu...

Najlepsze jest to, że KAŻDY język programowania moze tą funkcję wykorzystać..
Podam kod w C++

void ClrScr(){
  printf("\033[2J"); // Czyści ekran
  printf("\033[0;0f"); // Ustawia kursor w lewym, górnym rogu
}


chodzi tylko o wyslanie tzw klawisza ESC ('\033') a nastepnie wyslania komendy..
Dziala pod Windows 95, 98, ME, NT (wszystkie wersje czyli tez 2000 i XP oraz 2003)

a także pod linuxem (testowane na wiekszości znanych dystrybucjach) a także pod systemami BSD (test pod FreeBSD)

Mam nadzieje ze sie przyda..

conio2.h


Można również skożystać z biblioteki conio2.h http://conio.sourceforge.net/  przeznaczone dla kompilatora MinGW (Dev-C++). Jest ona wzorowana na borlandowsiej bibliotece conio.h i zawiera m.in. taką funkcję jak:
clrscr() - która czyści ekran i ustawia kursor w lewym, górnym rogu.

Systemowe


Można też użyć funkcji system("cls"); - wywołuje dostępną w dos komendę "cls".

8 komentarzy

Hekkaryk 2014-02-24 12:24

Podana powyżej funkcja była dokładnie tym czego szukałem (ponadto to bardzo proste rozwiązanie) - dziękuję za artykuł ;)

Grzybu 2007-03-02 16:02

czemu z conio2.h? u mnie (djgpp) ta instrukcja - clrscr() jest w conio.h a nie w conio2.h

TeWuX 2006-08-02 18:15

dopisalem rozdzial o conio2.h

mr.LuCaS 2005-08-08 01:18

chłopaki sie namęczyli a wy co, nie ladnie nie ladnie;P

marcinEc 2005-07-24 15:15

To załóżcie sobie kącik pomocy doraźnej, i takie tipsy nawzajem możecie sobie dawać, wtedy nie będzie problemów, że u innych nie działają te wspaniałe rozwiązania...

bartosak 2005-07-23 01:40

Wiekszosc osob z jakimi wspolpracuje ma wlaczone ANSI.sys bo po prsotu nie wie jak go wylaczyc...
Wazne jest ze dziala i to jest raczej jako ciekawostka ze tak tez mozna wyczyscic ekran przy pisaniu cross an ie bawiac sie w kompilacje warunkowa

Marooned 2005-07-21 00:53

Przecież w żadnym Windows sterownik ansi nie jest domyślnie uruchomiony i prawdę mówiąc - wątpię, by więcej niż 1 promil użytkowników go miało - więc w jaki sposób to ma działać?

marcinEc 2005-07-20 22:29

Tyle, że nie działa na KAŻDYM Windowsie...

E:\\Marcin\\temp\\2005-07-20>type c.cpp

  1. include <stdio.h>
void ClrScr(){
  printf(\"\\033[2J\"); // Czysci Ekran
  printf(\"\\033[0;0f\"); // Ustawia kursor w lewym gornym rogu
}
int main()
{
    ClrScr();
}
E:\\Marcin\\temp\\2005-07-20>g++ c.cpp -o taaa_clr
E:\\Marcin\\temp\\2005-07-20>taaa_clr
?[2J?[0;0f
E:\\Marcin\\temp\\2005-07-20>

Windows 2000, bez sterownika ANSI.sys, bo po co mi to?? :-P

Tam gdzie jest dostępne <conio.h> lepiej użyć clrscr(); czy nawet system(\"cls\")...

http://www.experts-exchange.co[...]ages/Cplusplus/Q_10465598.html