Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Autor: Pietrzuch
Biblioteki C++

Pogrubianie tekstu

[lekcja] Rozdział 3. Pogrubianie tekstu w konsoli.

Tryby pracy funkcji pobierających tekst.

Zanim podam kod chciałbym dodać, że funkcje getch(); itp. mogą pracować w dwóch trybach, echo(); i noecho(); . W trybie echo() po wywołaniu funkcji getch() jest wyświetlana litera, która została wciśnięta. W trybie noecho(), po wywołaniu funkcji getch(), jest tylko pobrany znak z klawiatury, i nic więcej. Żadna litera nie zostaje wyświetlona. ;)

Przykład

Ok, teraz przejdzmy do kodu:

C/C++
#include <ncurses.h>

int main()
{
   
    initscr(); //start
    keypad( stdscr, TRUE ); //1
    printw( "Znak w grubej czcionce:\n\n" ); //tekst
    noecho(); // 2
    int litera = getch(); //pobieranie znaku do zmiennej
    printw( "Wcisniety znak to:" ); //wyswietlanie tekstu
    attron( A_BOLD ); //3
    printw( "%d", litera ); //4
    getch(); //czekanie na naciśnięcie
    endwin(); //kończenie
    return 0;
}

Wyjaśnienie

1. Dzięki funkcji keypad(stdscr, true) program nie wyłącza się i odczytuje takie znaki jak strzałki, F3 itp. Stdscr oznacza nasze okienko czyli konsolkę. Parametr TRUE oznacza włączenie funkcji, zamieniając go na false, z powrotem nasz program będzie się wyłączał po wciśnięciu nieprawidłowego przycisku np. ctrl + z. ;)

2. A więc tak jak napisałem na początku, dzięki temu po "int litera = getch();" nie jest wyświetlany znak. Jeżeli nadal nie rozumiesz o co chodzi w echo() i noecho() skompiluj ten kod zmieniając te funkcje. I co zaobserwowałeś?

3. Funkcja attron(A_BOLD) zmienia wyświetlaną czcionkę w konsoli na grubszą. A dokładniej zmienia tryb wyświetlanie, ale o tym później. Bardzo przydatne, gdy chcemy na coś szczególnie zwrócić uwagę użytkownika.

4. Pewnie się zastanawiasz po co Ci jakiś program co zamiast wyświetlania wciśniętego klawisza wyświetla jakieś liczby. Te liczby to kod danego przycisku. Może później w przyszłości Ci się przyda wiedzieć jaki kod ma jaki klawisz i będziesz od razu wiedział jak taki program stworzyć, np. będziesz pisał program szyfrujący tekst. ;p

Zmiana wyświetlania liczby na literę

A więc jeżeli koniecznie chcesz, by wyświetlała się litera to zamiast:
C/C++
printw( "%d", litera );
napisz:
C/C++
printw( "%c", litera );
Widzisz jakie proste, a jaka różnica. ;P

Zakończenie

To co na tej lekcji poznałeś nie powinno być dla Ciebie skomplikowane, jeżeli tak jest spróbuj jeszcze raz przeanalizować kod. Pewnie zauważyłeś, że włączyliśmy tryb pogrubiania tekstu, ale jak go wyłączyć? ;-) Tego wraz z innymi funkcjami operującymi na tekście dowiemy się na następnej lekcji.
Poprzedni dokument Następny dokument
Hello World Obsługa kolorów