Portál AbcLinuxu, 10. května 2025 06:09

Dotaz: textcolor();, cprintf();, clrscr();

6.12.2003 12:27 šmejky | skóre: 10 | Mariánské Lázně
textcolor();, cprintf();, clrscr();
Přečteno: 595×
Odpovědět | Admin
Muzete mi nekdo please poradit, jak mohu v linuxovem C (pouzivam GCC pro kompilaci) zmenit barvu vypisu?
V DOSu na to pouzivam funkci textcolor(cislo), ktera mi nastavi barvu podle cisla, ktere zadam (0-15) a barevny vypis mohu uplatnit vypsanim funkci cprintf();, ktera se chova jako printf.
Pak bych jeste take rad nejak vymazal obrazovku, v DOSovskem C (Borland C++ 3.1) na to je fce clrscr();. Potreboval bych, aby i zakazala scrollbar, ktery v tom terminalu je, podobne jako kdyz spustim vim.
Díky za vase odpovedi.
Lorem ipsum dolor sit amet!
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.12.2003 13:53 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše textcolor();, cprintf();, clrscr();
Odpovědět | | Sbalit | Link | Blokovat | Admin
Existuje řada metod od quick-and-dirty použití escape sekvence pro tvůj oblíbený terminál (např. \e[31m přepne na červenou), přes použití termcap knihovny (info termcap) až po ncurses (man ncurses). Zakázat scrollbar IMHO buď nejde nikde nebo nejde ve většině terminálů (a nikdy jsem neviděl vim nic takového dělat), takže bych se tím asi netrápil.
6.12.2003 14:26 šmejky | skóre: 10 | Mariánské Lázně
Rozbalit Rozbalit vše textcolor();, cprintf();, clrscr();
Jde mi o to, ze potrebuju vymazat vsechno co do te doby bylo vypsano a to tak, ze to nenavratne zmizi a uz to nebude viditelne ani kdyz nekdo bude posouvat scrollbarem, protoze ten bude zakazany. Pouzivam terminal pro gnome a kdyz spustim vim, tak se vsechno vymaze a od leveho horniho rohu az po pravy dolni se vsechno vyplni VIMem, GUIscrollbar se zakaze, takze uz nemuzes nalistovat prikaz, kterym jsi vim spustil. Jakmile vim ukoncis, tak jsi zase zpet a jsou vydet vsechny ty prikazy a vypisy co si predtim napsal.
Je to pro me duelezite proto, ze vykresluji obrazek a potrebuji jim prekryt ten predchozi, a nerad bych, kdyby ho nekdo nalistoval.
Jinak diky, snad mi to pomuze.
Lorem ipsum dolor sit amet!
6.12.2003 14:47 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše textcolor();, cprintf();, clrscr();
Mh, tohle je vlastnost terminálu, když program pošle ,ti` (čímž dá najevo, že bude asi pracovat fullscreen způsobem, viz termcap). Některé terminály to dělají (gnome-terminál, konsole), některé to nedělají (xterm, rxvt). Není to nic, na co by ses mohl spolehnout. Já jsem např. rád, když mám spuštěný vim a mohu se přitom podívat, co bylo v terminálu předtím.
Josef Kufner avatar 6.12.2003 17:02 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše textcolor();, cprintf();, clrscr();
Odpovědět | | Sbalit | Link | Blokovat | Admin
myslim, ze to co hledas, je knihovna ncurses
Hello world ! Segmentation fault (core dumped)
6.12.2003 17:08 šmejky | skóre: 10 | Mariánské Lázně
Rozbalit Rozbalit vše textcolor();, cprintf();, clrscr();
A nevis prosimte jak se jmenuji ty fce?
Ten clrscr(); ale asi neumi, co.
Zajimalo by me, proc to proste neni v conio.h jako v DOSu.
Lorem ipsum dolor sit amet!
6.12.2003 17:18 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše textcolor();, cprintf();, clrscr();
To by sis rozuměl s Johnym... konsole v DOSu je konsole v DOSu, nic víc, nic míň. Terminály existují už hrozně dlouho, jsou jich spousty, každý je jiný a všechny jsou obskurní, některé vůbec neumějí smazat obrazovku, o barvách ani nemluvě, etc.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.