18.02.2013 Views

NCURSES ile Yazılım Geli¸stirme NASIL

NCURSES ile Yazılım Geli¸stirme NASIL

NCURSES ile Yazılım Geli¸stirme NASIL

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />

Artık temel çıktı i¸slevi addch()’a yabancı de˘giliz. Fakat, e˘ger bir dizgeyi yazdırmak istiyorsak onu karakter<br />

karakter yazdırmak oldukça sinir bozucu olacaktır. Ne iyi ki, ncurses, printf benzeri veya puts benzeri<br />

i¸slevler sunmaktadır.<br />

6.3. printw() sınıfı i¸slevler<br />

Bu i¸slevler printf() i¸slevine benzemeleri yanında ekran üzerindeki herhangi bir konuma da yazabilmeyi de<br />

sa˘glamaktadırlar.<br />

6.3.1. printw() ve mvprintw()<br />

Bu iki i¸slev printf()’e benzer çalı¸smaktadır. mvprintw() imleci belirt<strong>ile</strong>n konuma hareket ettirir ve buraya<br />

yazar. E˘ger önce imleci hareket ettirip daha sonra printw() kullanarak ekrana yazmak isterseniz önce<br />

move()’u daha sonra da printw()’yi kullanın. Ho¸s, birinin mvprintw() kullanımından kaçınmasında bir<br />

mantık göremesem de de˘gi¸stirme esnekli˘giniz bulunmaktadır.<br />

6.3.2. wprintw() ve mvwprintw()<br />

Bu i¸slevler, parametre olarak ver<strong>ile</strong>n pencerelere yazmaları dı¸sında yukarıdak<strong>ile</strong>re benzemektedir.<br />

6.3.3. vwprintw()<br />

Bu i¸slev vprintf()’e benzemektedir. De˘gi¸sken sayıda argümanla kullanılabilir.<br />

6.3.4. Basit bir printw örne ˘gi<br />

Örnek 3. Basit bir printw örne ˘gi<br />

#include /* stdio.h ba¸slık dosyasını da ekler */<br />

#include <br />

int main()<br />

{<br />

char <strong>ile</strong>ti[]="Sadece bir dizge"; /* ekranda görünecek <strong>ile</strong>ti */<br />

int sat, sut; /* ekrandaki satır sayısını ve *<br />

* sütün sayısını tutmak için */<br />

initscr(); /* curses kipine ba¸slama */<br />

getmaxyx(stdscr, sat, sut); /* satır ve sütun sayısını alma */<br />

mvprintw(sat/2, (sut–strlen(<strong>ile</strong>ti))/2, "%s", <strong>ile</strong>ti);<br />

/* <strong>ile</strong>tiyi ekranın ortasına yazdır */<br />

mvprintw(sat–2, 0, "Bu ekranda %d satır ve %d sütun var\n", sat, sut);<br />

printw("Ekran boyunu degistirerek (eger mümkünse)"<br />

" programı yeniden çalıstırın");<br />

refresh();<br />

getch();<br />

endwin();<br />

return 0;<br />

}<br />

Yukarıdaki program printw kullanımının ne kadar kolay oldu˘gunu göstermektedir. Sadece koordinatları ve<br />

göstermek istedi˘giniz <strong>ile</strong>tiyi belirtmektesiniz ve o da iste˘ginizi yerine getirmektedir.<br />

Yukarıdaki program bize getmaxyx() isimli ncurses.h içerisinde tanımlı yeni bir makroyu tanıtmaktadır.<br />

Ver<strong>ile</strong>n penceredeki satır ve sütün sayısını hesaplar. getmaxyx() bunu kendisine ver<strong>ile</strong>n de˘gi¸skenleri gün-<br />

http://belgeler.org Linux Kitaplı˘gı 17 / 90

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!