'프로그램 사용/ncurses'에 해당되는 글 3건

  1. 2024.12.02 ncurses 상자 및 색상 적용하기
  2. 2024.11.30 ncurses 예제
  3. 2015.04.27 ncurse
프로그램 사용/ncurses2024. 12. 2. 10:22

screen - window 계층 구조인 것 같고

상자는 세로, 가로로 쓸 문자만 넣어주면 되는 듯. 터미널 사이즈에 따른 동적 변화는 따로 찾아봐야겠네.

#include <ncurses.h>

int main(void){
    initscr();
    start_color();
    init_color(1, 0, 1000, 0);      // 1번 색상(글자색): 초록색
    init_color(2, 0, 0, 1000);      // 2번 색상(배경색): 파랑색
    init_pair(1, 1, 2);             // 1번 Color pair를 초록 글자색과 파랑 배경색으로 지정
    
    WINDOW * win = newwin(20, 20, 10, 10);
    box(win, '|', '-');
    waddch(win, 'A' | COLOR_PAIR(1));   // 1번 Color pair를 적용해 문자 출력

    refresh();
    wrefresh(win);
    getch();
    endwin();
}

 

start_color() 로 색상을 사용할 수 있도록 설정하고

init_color(index, , , ,)로 팔레트를 초기화 하고

attron(attribute on), attroff(attribute off) 함수로 색상을 적용/해제 한다.

#include <ncurses.h>

int main(void){
    initscr();
    start_color();

    init_color(1, 0, 1000, 0);
    init_color(2, 0, 0, 1000);
    init_pair(1, 1, 2);

    attron(COLOR_PAIR(1));    // 출력 색상을 1번 Color pair로 변경
    printw("Hello");
    attroff(COLOR_PAIR(1));   // 속성 해제

    refresh();
    getch();
    endwin();
}

[링크 : https://magmatart.dev/development/2017/06/15/ncurses4.html]

'프로그램 사용 > ncurses' 카테고리의 다른 글

ncurses 예제  (0) 2024.11.30
ncurse  (0) 2015.04.27
Posted by 구차니
프로그램 사용/ncurses2024. 11. 30. 15:11

forza horizon 모션 데이터 출력을 위해서 ncurse 사용하게 될 줄이야..

 

일단 패키지를 설치해주고

$ sudo apt-get install libncurses-dev

 

소스를 가져오고

#include <ncurses.h>
#include <unistd.h>

int func1(){
    initscr();
    mvprintw(0, 0, "Hello, World"); // 화면의 0행, 0열부터 Hello, World를 출력합니다.
    refresh(); // 화면에 출력하도록 합니다.
    sleep(1);
    endwin();
    return 0;
}

int main(){
    return func1();
}
#include <ncurses.h>
#include <unistd.h>

int timer(){
    int row = 10, col = 10;
    initscr();
    noecho(); // 입력을 자동으로 화면에 출력하지 않도록 합니다.
    curs_set(FALSE); // cursor를 보이지 않게 합니다. 

    keypad(stdscr, TRUE);
    while(1){
        int input = getch();
        clear();
        switch(input){
            case KEY_UP:
            mvprintw(--row, col, "A"); // real moving in your screen
            continue;
            case KEY_DOWN:
            mvprintw(++row, col, "A");
            continue;
            case KEY_LEFT:
            mvprintw(row, --col, "A");
            continue;
            case KEY_RIGHT:
            mvprintw(row, ++col, "A");
            continue;

        }
        if(input == 'q') break;
    }

    endwin();
    return 0;
}

int main(){
    return timer();
}

 

아래의 링커 옵션을 주고 빌드하면 끝

$ gcc ncruse_example.c -lncurses -o bin/ex1

 

mvprintw() 만 쓰면 원하는 위치에 꾸준히 갱신할 수 있을 듯

[링크 : https://blackinkgj.github.io/ncurses/]

 

 

[링크 : https://www.ibm.com/docs/ko/aix/7.3?topic=p-printw-wprintw-mvprintw-mvwprintw-subroutine]

'프로그램 사용 > ncurses' 카테고리의 다른 글

ncurses 상자 및 색상 적용하기  (0) 2024.12.02
ncurse  (0) 2015.04.27
Posted by 구차니
프로그램 사용/ncurses2015. 4. 27. 17:44

쓸일이 생길지도 모르니 일단 조사..


[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/ncurses_프로그래밍]

'프로그램 사용 > ncurses' 카테고리의 다른 글

ncurses 상자 및 색상 적용하기  (0) 2024.12.02
ncurses 예제  (0) 2024.11.30
Posted by 구차니