Naravno, počnimo!
Ispis u ružičastoj boji je naredba za ispis obojena ružičastim tekstom u C programiranju. Ovaj programski zadatak nije uobičajen, ali je prilično zanimljiv i prikazuje svestranost i fleksibilnost C-a. Zadatak je jedinstven, ali vam omogućuje da razumijete kako morate manipulirati konfiguracijama zaslona terminala da biste to postigli.
C obično prema zadanim postavkama ne podržava ispis u boji u tekstualnom načinu. Međutim, možemo koristiti određene biblioteke i određeni skup naredbi za manipuliranje postavkama terminala i ispis u boji. U postizanju ispisa u ružičastoj boji, mi ćemo to riješiti uz pomoć ncurses knjižnice (biblioteke izgrađene za tekstualno korisničko sučelje). To je programska biblioteka koja pruža API koji programeru omogućuje pisanje korisničkih sučelja temeljenih na tekstu na način neovisan o terminalu.
Potencijalno rješenje
Jedno rješenje našeg problema može biti korištenje metoda `start_color()` i `init_pair()` iz biblioteke `ncurses`.
Evo pregleda našeg rješenja na visokoj razini:
- Prvo ćemo uključiti biblioteku ncurses u naš kod
- Zatim inicijaliziramo ncurses način rada pomoću funkcije `initscr()`
- Zatim ćemo pokrenuti funkcionalnost boja s `start_color()`
- Isto tako, inicijalizirat ćemo par boja s `init_pair()`
- Na kraju ćemo ispisati željenu izjavu u ružičastoj boji koristeći `printw()`
Korak po korak objašnjenje koda
Zaronimo dublje u kôd rješenja i razumijemo svaki dio:
// Include the ncurses library #include <ncurses.h> int main() { // Initialize ncurses mode initscr(); // checking whether terminal supports colors if (has_colors() == FALSE) { printw("Your terminal does not support color"); endwin(); return 1; } // Enable color functionality start_color(); // Initialize pink color pair init_pair(1, COLOR_MAGENTA, COLOR_BLACK); // Set the color pair and print the text attron(COLOR_PAIR(1)); printw("Hello, World!"); // Refresh the screen to see the changes refresh(); // Wait for user input so we can see the result getch(); // Clean up and close endwin(); return 0; }
U gornjem kodu prvo inicijaliziramo način rada ncurses pomoću `initscr()`. Zatim provjeravamo podržava li naš terminal boje, ako ne, završavamo ncurses mod i vraćamo se. Ako se dogodi, pokrećemo funkciju boja.
Knjižnice ili funkcije uključene u ispis u ružičastoj boji
Vrijedno je napomenuti nekoliko točaka o bibliotekama i metodama koje smo koristili:
- `start_color()` – Koristi se za pokretanje funkcionalnosti boja.
- `init_pair()` – Mijenja definiciju para boja. Ovdje smo stvorili novi par s ružičastim prednjim planom i crnom pozadinom.
- `COLOR_MAGENTA` – To je makronaredba koja se koristi za označavanje magenta boje (koja je najbliža ružičastoj).
- `printw()` – Koristi se za ispis niza na prozoru.
Raznovrsnost programskog jezika C prilično je očita u ovoj vježbi i nudi brzu shemu prikaza pri razvoju konzolnih programa. Ispravno slijedeći ove korake, trebali biste moći ispisivati tekst u ružičastoj boji u svojim C programima.