Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />
celleyerek yapar. getmaxyx() i¸slev olmadı˘gından parametre olarak gösterici aktaramayız, sadece iki tamsayı<br />
de˘gi¸sken verebiliriz.<br />
6.4. addstr() sınıfı i¸slevler<br />
addstr() bir karakter dizisini ver<strong>ile</strong>n pencereye yazdırmak için kullanılır. Bu i¸slev her bir karakter için addch()<br />
i¸slevini ça˘gırmaya benzer. Bu tüm çıktı i¸slevleri için geçerlidir. Bu a<strong>ile</strong>den mvaddstr(), mvwaddstr()<br />
ve waddstr() gibi, curses’in isimlendirme kurallarına uyan (örn. mvaddstr(), move() ve daha sonra<br />
addstr() ça˘grılmasıyla aynıdır) i¸slevler de vardır. Bu a<strong>ile</strong>nin bir ba¸ska i¸slevi ise ek olarak n tam sayı parametresini<br />
alan addnstr() i¸slevidir. Bu i¸slev ekrana en fazla n karakter yazdırır. E˘ger n negatif ise tüm dizge<br />
yazdırılır.<br />
6.5. Dikkat edilmesi gereken nokta<br />
Tüm bu i¸slevler parametre olarak önce y daha sonra da x koordinatını almaktadır. Yeni ba¸slayanların yaptı˘gı<br />
en temel hata x, y ¸seklinde parametre göndermektir. E˘ger (y,x) koordinatları üzerinde çok fazla de˘gi¸siklik<br />
yapıyorsanız, ekranı her biriyle ayrı ayrı ilg<strong>ile</strong>nmek için pencerelere bölün. Pencereler Pencereler (sayfa: 22)<br />
bölümünde açıklanmı¸stır.<br />
7. Girdi i¸slevleri<br />
Aslında girdi almadan ekrana yazdırmak sıkıcıdır. Kullanıcıdan girdi almamızı sa˘glayan i¸slevlere bir bakalım. Bu<br />
i¸slevler üç bölüme ayrılabilir;<br />
1. getch() sınıfı: Bir karakter alır<br />
2. scanw() sınıfı: Biçimlenmi¸s girdi alır<br />
3. getstr() sınıfı: Dizge alır<br />
7.1. getch() sınıfı i¸slevler<br />
Bu i¸slevler uçbirimden tek bir karakter okur. Fakat gözönüne alınması gereken bir kaç ince nokta vardır.<br />
Örne˘gin, e˘ger cbreak() i¸slevini kullanmazsanız, curses girdi˘giniz karakterleri art arda de˘gil sadece satırsonu<br />
veya dosyasonu karakteri <strong>ile</strong> kar¸sıla¸sana kadar okuyacaktır. Bundan kaçınmak için cbreak() i¸slevi kullanılmalıdır,<br />
böylece karakterler anında programınızdan eri¸s<strong>ile</strong>bilir olacaktır. Yaygın olarak kullanılan i¸slevlerdan<br />
biri noecho()’dur. ˙Isminden de anla¸sılaca˘gı üzere, bu i¸slev ça˘grıldı˘gında (kullanıldı˘gında) kullanıcının girdi˘gi<br />
karakterler ekranda gösterilmez. cbreak() ve noecho() i¸slevleri tu¸s yönetimi üzerindeki en tipik örneklerdir.<br />
Bu türden i¸slevler Klavye <strong>ile</strong> etk<strong>ile</strong>¸sim (sayfa: 29) bölümünde anlatılmı¸stır.<br />
7.2. scanw() sınıfı i¸slevler<br />
Bu i¸slevler scanf() i¸slevine benzemektedir, ek olarak ekran üzerindeki herhangi bir konumdan veri giri¸sine<br />
olanak sa˘glamaktadırlar.<br />
7.2.1. scanw() ve mvscanw()<br />
Bu i¸slevlerin kullanımı taranacak satırın wgetstr() i¸slevi <strong>ile</strong> sa˘glandı˘gı sscanf() kullanımına benzemektedir.<br />
Ba¸ska deyi¸sle, bu i¸slevler wgetstr() i¸slevini ça˘gırır (a¸sa˘gıda anlatılmı¸stır) ve sonuç satırını taramak için<br />
kullanırlar.<br />
7.2.2. wscanw() ve mvwscanw()<br />
http://belgeler.org Linux Kitaplı˘gı 18 / 90