Biblioteka console.ddt
1. Uwagi
2. Konsola i problemy z nią związane
W dzisiejszych czasach jednym z poważnych problemów, na jaki może natrafić początkujący programista to wykorzystywanie konsoli. Standardowe biblioteki Dev-C++ nie posiadają poleceń takich jak gotoxy() czy clrscr(), co może odstraszyć, a co gorsza zniechęcić początkującego programistę od dalszej nauki tego języka. Co więcej na forum prawie zawsze słyszymy odpowiedź, że Dev-C++ nie obsługuje takich poleceń i powinniśmy zainstalować sobie C++ Buildera lub jeszcze coś innego, co posiada funkcje o które pytamy. Otóż korzystanie z konsoli pod Windowsem jest trudniejsze, niż było to pod DOSem, jednak nie jest niemożliwe. Ponieważ moim celem nie jest zniechęcanie do programowania w Dev-C++, na stronie http://pliki.ddt.pl zamieściłem bibliotekę console.ddt, która w tym rozdziale zostanie szczegółowo omówiona. Do biblioteki zamieszczonej na stronie dołączona jest aktualna dokumentacja, która umożliwi Ci ich łatwe wykorzystanie bez konieczności wgłębiania się w kod biblioteki.
3. Instalacja biblioteki console.ddt
Cała instalacja biblioteki console.ddt sprowadza się do pobrania pliku ze strony Internetowej http://pliki.ddt.pl, a następnie wgraniu jej do katalogu, w którym znajdują się nasze pliki z kodem źródłowym.
4. Jak korzystać z nowej biblioteki
Wykorzystywanie bibliotek jest już prostą sprawą. W tym celu wystarczy wpisać na początku pliku:
#include "console.ddt"
using namespace ddt::console;
Jeśli plik nie znajduje się w tym samym katalogu co kod Twojego programu, kompilator pokaże błąd kompilacji i poinformuje Cię, że nie mógł znaleźć określonego pliku.
5. Przestrzeń nazw
Wszystkie funkcje, jakie zostały umieszczone w tej bibliotece znajdują się w przestrzeni nazw ddt::console. Oznacza to, że jeśli chcesz wykorzystać jakąkolwiek funkcję z tego programu musisz ją poprzedzić zapisem ddt::console, czyli ddt::console::nazwa_funkcji();. Jeśli nie chcesz pisać co chwilę tak długiej nazwy, wystarczy że dodasz na początku programu zapis using namespace ddt::console;, przez co Twoje wywołanie funkcji skróci się do zapisu nazwa_funkcji();.
6. Poznajemy polecenia konsoli
Ponieważ obsługa konsoli pod Windowsem nie należy do najłatwiejszych postanowiłem, że utworzę do Twojego użytku bibliotekę, która będzie dawała Ci możliwość korzystania z funkcji w tak samo prosty sposób w Dev-C++ jak programiści używający płatnego środowiska programowania.
6.1. void clrscr(void);
Funkcja clrscr służy do czyszczenia całego ekranu konsoli. Ekran zostanie wyczyszczony na aktualnie ustawiony kolor tła. Domyślnym kolorem tła zazwyczaj jest kolor czarny, więc jeśli chcesz uzyskać inny kolor, będziesz musiał najpierw wywołać funkcję odpowiedzialną za zmianę koloru tła. Zapis void clrscr(void); oznacza tyle, że funkcja o nazwie clrscr nie zwraca żadnej wartości i nie przyjmuje żadnych parametrów wejściowych.
6.2. void gotoxy(int x, int y);
Funkcja gotoxy służy do ustawiania migającego kursora w wybranym miejscu na ekranie. Lewy górny narożnik ma współrzędne (1,1), natomiast prawy dolny ma współrzędne (80,25). Słówko void oznacza, że funkcja nie zwraca żadnej wartości. Parametrami nazywamy zmienne umieszczone między nawiasami. W tym przypadku są to dwie zmienne typu int. W pierwszym polu podajemy współrzędną X, a w drugim współrzędną Y. Wywołanie takiej funkcji może wyglądać na przykład tak:
ddt::console::gotoxy(70,11);//kolumna=70; wiersz=11;
6.3. int wherex(void);
Jeśli chcemy pobrać aktualną kolumnę w której znajduje się kursor w konsoli, wykorzystujemy do tego funkcję wherex. Funkcja zwraca liczbę, która określa pozycję kursora w osi X. Parametr void oznacza, że funkcja nie przyjmuje żadnych parametrów wejściowych.
6.4. int wherey(void);
Jeśli chcemy pobrać aktualny wiersz w której znajduje się kursor w konsoli, wykorzystujemy do tego funkcję wherey. Funkcja zwraca liczbę, która określa pozycję kursora w osi Y. Parametr void oznacza, że funkcja nie przyjmuje żadnych parametrów wejściowych.
6.5. void textattr(int kolor);
Kolejną funkcją, którą zamieściłem w tej bibliotece to textattr. Służy ona do ustawiania koloru tła i czcionki, który będzie pisany. Funkcja nie zwraca żadnej wartości. Jedynym parametrem jaki funkcja przyjmuje jest to liczba typu int reprezentująca kolor tła i tekstu. Maksymalna ilość kolorów dla tekstu i dla tła wynosi 16. Pierwszy kolor to 0 ostatni kolor to 15 zarówno dla tła jak i dla czcionki. Aby ustawić odpowiednie kolory tła i tekstu posługujemy się wzorem:
int kolorTla=1;//min wartosc=0; max wartosc=15;
int kolorTekstu=14;//min wartosc=0; max wartosc=15;
ddt::console::textattr(kolorTla*16+kolorTekstu);
6.6. void textcolor(int kolorTekstu);
Jeśli mamy potrzebę zmienić tylko kolor tekstu, możemy do tego celu wykorzystać funkcję textcolor. Funkcja nie zwraca żadnej wartości. Jedynym parametrem, jaki przyjmuje to liczba typu int reprezentująca nowy kolor czcionki.
6.7. void textbackground(int kolorTla);
Jeśli mamy potrzebę zmienić tylko kolor tła, możemy do tego celu wykorzystać funkcję textbackground. Funkcja nie zwraca żadnej wartości. Jedynym parametrem, jaki przyjmuje to liczba typu int reprezentująca nowy kolor tła.
7. Uwagi