Képernyő törlés linux + c/c++?

Fórumok

Képernyő törlés linux + c/c++?

Hozzászólások

Sziasztok!

Akadt egy problémám, csak egy "egyszerű képernyőtörlés".

Eleinte a system("clear") -t használtam, de ez nem igazán jó, ha sűrűn szeretném, ezért elkezdtem utánna olvasgatni. Amit találtam, az az, hogy használjam az ncurses csomagot. Fel is telepítettem, man-t elolvastam, és próbából írtam egy pár soros c fájlt:

p.c:

#include <curses.h>

int mai()
{
initscr();
clear();
}

Szerintem ez elég egyszerű, és elméletileg azt kellene csinálni, mint a clear parancsnak.
(fordítás: "gcc -o p p.c -lncurses" )

Na most az az igazság, nem torli a kepernyot, és olyan a viselkedése utánna a konzolnak, mint amikor a sima Borland C -ben megírt hibás grafikus progi, aminek a végére nem rakták oda a closegraph() -t. :(

Ha tudna valaki segíteni abban, hogy mit nem csináltam jól, annak örülnék. A segítségeket meg előre is megköszönném.

a google-on megtalalod a megoldast.
ugyanis a kepernyotorles terminal/console fuggo, de ha nagyon csunyat kuldesz a terminalra akkor torli.
mondjuk ezt:
printf("%c%c%c%c%c%c",27,'[','H',27,'[','J' );

az elobbi egyebbkent a termcap kodjabol valo

[quote:c561ab84f3="golgota"]a google-on megtalalod a megoldast.
ugyanis a kepernyotorles terminal/console fuggo, de ha nagyon csunyat kuldesz a terminalra akkor torli.
mondjuk ezt:
printf("%c%c%c%c%c%c",27,'[','H',27,'[','J' );

Jo az renben van, hogy google, ugyanis onnan vadásztam ezt is.
google->"clrscr() linux"

lehet hogy hülye vagyok (biztos), ha jól értelmezem, akkor a termcap forrásából vetted a
printf sort???
ha jol tom a 27-s karakter az Esc, char ként kiíratni??

na jo lehet hogy leragadtam. Valami konkrétabb indulópontot tudnál adni, mert valszín az enyém hibás volt. :?: :oops:

[quote:537c89c94c="kandis"]
#include <curses.h>

int mai()
{
initscr();
clear();
}
Na most az az igazság, nem torli a kepernyot, és olyan a viselkedése utánna a konzolnak, mint amikor a sima Borland C -ben megírt hibás grafikus progi, aminek a végére nem rakták oda a closegraph() -t. :(

Bár nem értek az ncurses alapú őrjöngéshez, de sztem pontosan az történt, amit leírtál. Kéne valami curses módot lezáró függvény. Ha minden igaz, endwin()-nek hívják.

Hali!

Itt nezz korul:
http://www.hup.hu/wiki/index.php/Programoz%C3%A1s_Linux_alatt_az_NCurses_f%C3%BCggv%C3%A9nyk%C3%B6nyvt%C3%A1r_haszn%C3%A1lat%C3%A1val

esetleg ha angol is jo, akkor itt:
http://www.faqs.org/docs/Linux-HOWTO/NCURSES-Programming-HOWTO.html

Az ncurses amennyire tudom, úgy működik, hogy törli a képernyőt mondjuk, miegyéb, majd ha véget ért a program, akkor szépen a korábbi képernyőtartalmat visszaállítja. Erre kiváló példa a screen (bár nem biztos, hogy ncurses-t használ...)

A következő parancsok törölnek:

clear();
refresh();

de a program végén ne felejtsd el az "endwin();"-t.

Többet megtudhatsz -> man ncurses

Hali!

Imádlak titeket, mek olvasni, és tanulni, de ha valamivel nagyon megakadok, majd még írok. :P

[quote:ec0f47f27a="bboti"]A következő parancsok törölnek:

clear();
refresh();

de a program végén ne felejtsd el az "endwin();"-t.

Többet megtudhatsz -> man ncurses

Úgy látom a figyelmetlenségem határtalan. :oops: Mindjárt átnyálazom megint a man-t! :P

[quote:ac2a8cd54a="golgota"]printf("%c%c%c%c%c%c",27,'[','H',27,'[','J' );

Huhh!
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c", 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\n');
Miiért is bonyolítjuk túl a dolgokat??? :-)

Sziasztok!

Nagyon jó anyag amit adtatok, olyanokat is találtam benne, amiket régen kerestem (pl. getch()). Az angol bővebb leírás is könnyen értelmezhető, még oly csekély angol tudással is mint az enyém. :P

Lenne azomban egy kérdésem, mikor elővadásztam elősször az ncurses csomagot, közben elolvastam néhány leírást melyben azt állítják, hogy ez volt előbb, nem a borland dos.h -ja, csak azért, mert itt vannak olyan fügvénynevek, amelyek ugyan azok, csak a viselkedésük tér el egymástól. pl.: getch() a dos.h -ban vár egy ideig, és ha nem történik leütés akkor -1, a curses.h -ban viszont addig nem is tér vissza, amíg nem üt le billenyű a júzer.
Mondjuk ehhez a getch() hez adok egy kis pthred -t, és már megvan az ami kell! :) :roll: :P

Sziasztok!

Engem már egy ideje foglalkoztatott, hogy milyen unitot kell használnom, ha szöveges módban színeket akarok használni vagy ha pozícionálni akarom a kurzort. Ha jól értelmezem, akkor ez az ncurses erre való. Ez tök jó! :)