C/C++ FAQ

Uniwersalne czyszczenie ekranu (Kazdy Jezyk)

bartosak

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".

FAQ

8 komentarzy

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

E:\Marcin\temp\2005-07-20>type c.cpp
#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.c[...]ges/Cplusplus/Q_10465598.html

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

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

dopisalem rozdzial o conio2.h

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

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...

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

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ć?