printw() sınıfı işlevler

Bu işlevler printf() işlevine benzemeleri yanında ekran üzerindeki herhangi bir konuma da yazabilmeyi de sağlamaktadırlar.

printw() ve mvprintw()

Bu iki işlev printf()'e benzer çalışmaktadır. mvprintw() imleci belirtilen konuma hareket ettirir ve buraya yazar. Eğer önce imleci hareket ettirip daha sonra printw() kullanarak ekrana yazmak isterseniz önce move()'u daha sonra da printw()'yi kullanın. Hoş, birinin mvprintw() kullanımından kaçınmasında bir mantık göremesem de değiştirme esnekliğiniz bulunmaktadır.

wprintw() ve mvwprintw()

Bu işlevler, parametre olarak verilen pencerelere yazmaları dışında yukarıdakilere benzemektedir.

vwprintw()

Bu işlev vprintf()'e benzemektedir. Değişken sayıda argümanla kullanılabilir.

Basit bir printw örneği

Örnek 5.8. Basit bir printw örneği

#include <ncurses.h>       /* stdio.h başlık dosyasını da ekler */
#include <string.h>

int main()
{
 char ileti[]="Sadece bir dizge"; /* ekranda görünecek ileti       */
 int sat, sut;                    /* ekrandaki satır sayısını ve    *
                                   * sütün sayısını tutmak için     */
 initscr();                       /* curses kipine başlama          */
 getmaxyx(stdscr, sat, sut);      /* satır ve sütun sayısını alma   */
 mvprintw(sat/2, (sut-strlen(ileti))/2, "%s", ileti);
                                  /* iletiyi ekranın ortasına yazdır */
 mvprintw(sat-2, 0, "Bu ekranda %d satır ve %d sütun var\n", sat, sut);
 printw("Ekran boyunu degistirerek (eger mümkünse)"
        " programı yeniden çalıstırın");
 refresh();
 getch();
 endwin();

 return 0;
}

Yukarıdaki program printw kullanımının ne kadar kolay olduğunu göstermektedir. Sadece koordinatları ve göstermek istediğiniz iletiyi belirtmektesiniz ve o da isteğinizi yerine getirmektedir.

Yukarıdaki program bize getmaxyx() isimli ncurses.h içerisinde tanımlı yeni bir makroyu tanıtmaktadır. Verilen penceredeki satır ve sütün sayısını hesaplar. getmaxyx() bunu kendisine verilen değişkenleri güncelleyerek yapar. getmaxyx() işlev olmadığından parametre olarak gösterici aktaramayız, sadece iki tamsayı değişken verebiliriz.