to get the file

Transkrypt

to get the file
Laboratorium nr 2
Instrukcja
laboratoryjna
2
1)
1/3
Programowanie w języku C 2
Temat: Wyświetlanie i wprowadzanie znaków
Przygotował: mgr inż. Maciej Lasota, mgr inż. Mariusz Wiśniewski
Wyświetlanie znaków
Wyróżniamy trzy klasy (typy) funkcji służących do wyświetlania znaków w ncurses.
•
funkcje typu addch (ang. add character),
•
funkcje typu printw,
•
funkcje typu addstr (ang. add string).
Addch są to funkcje wyświetlające pojedynczy znak na obszarze rysowania lub w
podanym oknie w zależności od atrybutu. Funkcje printw wyświetlają sformatowany ciąg
znaków (identycznie jak funkcja printf()). Ostatni typ funkcji addstr wyświetla ciąg znaków
zakończony '\0'.
1.1)
Funkcje addch()
•
addch(…) - wyświetla pojedynczy znak w miejscu znajdowania się kursora.
•
waddch(…) - wyświetla pojedynczy znak w miejscu znajdowania się kursora
w podanym oknie.
Powyższe funkcje występują w odmianach mvwaddch() i mvaddch().
Przykład:
char znak='D';
addch(znak);
addch(znak | A_BOLD | A_UNDERLINE);
WINDOW *okno;
okno = newwin(10, 20, 2, 2);
waddch(okno, znak);
waddch(okno, znak | A_BOLD | A_UNDERLINE);
Laboratorium nr 2
2/3
Atrybuty (wybrane) jakie mogą przyjmować funkcje z rodziny addch:
A_REVERSE
- znak w negatywie
A_NORMAL
- standard
A_BOLD
- wytłuszczenie (rozjaśnienie)
A_BLINK
- migotanie
A_UNDERLINE
- podkreślenie
A_DIM
– przyciemnienie
1.2)
•
Funkcje printw()
printw(…) - wyświetla sformatowany ciąg znaków w miejscu znajdowania się
kursora.
•
wprintw(…) - wyświetla sformatowany ciąg znaków w miejscu znajdowania
się kursora w podanym oknie.
Powyższe funkcje występują w odmianach mvwprintw() i mvprintw().
Przykład:
int liczba = 5;
char imie[]= ”zosia”;
WINDOW *okno;
okno = newwin(10, 20, 2, 2);
printw(”Oto sformatowany tekst imie: %s
długosc: %d\n”,imie,strlen(imie));
wprintw(okno,”Wyswietlam imie: %s\n”, imie);
1.3)
Funkcje addstr()
•
addstr(…) - wyświetla ciąg znaków w miejscu znajdowania się kursora.
•
waddstr(…) - wyświetla ciąg znaków w miejscu znajdowania się kursora w
podanym oknie.
Powyższe funkcje występują w odmianach mvwaddstr() i mvaddstr().
Laboratorium nr 2
2)
3/3
Wprowadzanie znaków
Wyróżniamy trzy klasy (typy) funkcji służących do wczytywania znaków w ncurses.
•
funkcje typu getch (ang. get character),
•
funkcje typu scanw,
•
funkcje typu getstr (ang. get string).
Funkcje getch służą do wczytywania pojedynczego znaku. Funkcje scanw wczytują
sformatowany ciąg znaków (identycznie jak funkcja scanf()). Ostatni typ funkcji getstr
wczytuje ciąg znaków i zapisuje go do podanej jako parametr tablicy.
•
getch() - odczytuje znak z klawiatury i umieszcza go w miejscu kursora w
bieżącym oknie,
•
wgetch() - odczytuje znak z klawiatury i umieszcza go w miejscu kursora w
określonym oknie,
•
mvgetch() - odczytuje znak z klawiatury i umieszcza go w pozycji (y, x),
•
getstr()
-
odczytuje
ciąg
znaków
z
klawiatury
i
umieszcza
go
w
podanej tablicy,
•
wgetstr() - odczytuje ciąg znaków z klawiatury i umieszcza go w podanej
tablicy, w określonym oknie,
•
scanw() - odczytuje sformatowany ciąg znaków z klawiatury i umieszcza go w
miejscu kursora w bieżącym oknie,
•
wscnaw() - odczytuje sformatowany ciąg znaków z klawiatury i umieszcza go w
miejscu kursora w określonym oknie.
3)
Dodatkowe funkcje
•
echo() - wywołanie funkcji spowoduje, że wprowadzane znaki będą widoczne,
•
noecho() - wywołanie funkcji spowoduje, że wprowadzane znaki NIE będą
widoczne,
•
nodelay(okno, 1) - powyższe wywołanie funkcji powoduje, że funkcja getch
NIE oczekuje na znak,
•
nodelay(okno, 0) - powyższe wywołanie funkcji powoduje, że funkcja getch
oczekuje na znak (program jest wstrzymywany).