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