Naravno, hajde da počnemo!
Štampa u roze je naredba za štampanje obojena u ružičasti tekstualni izlaz u C programiranju. Ovaj programski zadatak nije uobičajen, ali je prilično interesantan i pokazuje svestranost i fleksibilnost C-a. Zadatak je jedinstven, ali vam omogućava da shvatite kako morate manipulirati konfiguracijama ekrana terminala da biste ga postigli.
C obično ne podržava izlaz u boji u tekstualnom modu prema zadanim postavkama. Međutim, možemo koristiti određene biblioteke i određeni skup naredbi za manipulaciju postavkama terminala i ispis u boji. U postizanju štampe u ružičastoj boji, to ćemo obraditi uz pomoć biblioteke ncurses (biblioteka napravljena za tekstualni korisnički interfejs). To je programska biblioteka koja pruža API, koji omogućava programeru da piše korisnička sučelja zasnovana na tekstu na način nezavisan od terminala.
Potencijalno rješenje
Jedno rješenje za naš problem može biti korištenje metoda `start_color()` i `init_pair()` iz biblioteke `ncurses`.
Evo pregleda visokog nivoa našeg rješenja:
- Prvo ćemo uključiti biblioteku ncurses u naš kod
- Zatim inicijaliziramo ncurses način pomoću funkcije `initscr()`
- Zatim ćemo pokrenuti funkcionalnost boje sa `start_color()`
- Isto tako, mi ćemo inicijalizirati par boja sa `init_pair()`
- Konačno, željeni iskaz ćemo ispisati ružičastom bojom koristeći `printw()`
Korak po korak objašnjenje koda
Počnimo dublje zaroniti u kod rješenja i razumjeti 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 ncurses način pomoću `initscr()`. Zatim provjeravamo da li naš terminal podržava boje, ako ne, završavamo ncurses mod i vraćamo se. Ako je tako, pokrećemo funkcionalnost boje.
Biblioteke ili funkcije uključene u štampanje u ružičastoj boji
Vrijedi napomenuti nekoliko stvari o bibliotekama i metodama koje smo koristili:
- `start_color()` – Koristi se za pokretanje funkcionalnosti boje.
- `init_pair()` – Mijenja definiciju para boja. Ovdje smo kreirali novi par s ružičastim prednjim planom i crnom pozadinom.
- `COLOR_MAGENTA` – To je makro koji se koristi za označavanje magenta boje (koja je najbliža ružičastoj).
- `printw()` – Koristi se za ispis niza na prozoru.
Svestranost programskog jezika C je prilično očigledna u ovoj vježbi i nudi brzu šemu prikaza pri razvoju programa konzole. Prateći ove korake ispravno, trebalo bi da budete u mogućnosti da štampate tekst u ružičastoj boji u svojim C programima.