2012-09-13 3 views
1

다음 코드는 ncurses를 사용하고 있습니다. 하나의 이동 기능을 사용하여 몇 줄을 인쇄 할 수 있는지 알고 싶습니다. 예를 들어리눅스에서 GNU C의 ncurses에서 move (y, x)

:

move(25,25); 
printw("Line 1\n"); 
printw("Line 2\n"); 

라인 (26,0)에서 (25,25) 위치에 1 인쇄하지만 라인이 인쇄 내가 이동 (26,25)를 사용하지 않는 경우. 두 번째 이동을 피하고 (26,25)에서 2 번 줄을 인쇄 할 수 있습니까?

+0

새 창을 정의하고이 창에서 wprintw를 시도 했습니까? – Kwariz

+0

새 창을 만들었지 만 하나의 move()를 사용하여 기동하는 방법은 무엇입니까? – user1293997

답변

0

인쇄 할 내용이 정렬되어야하면 새 창을 정의 할 수 있습니다. 잠깐 :

#include <ncurses.h> 

int main() 
{ 
    WINDOW* mywin; 

    initscr(); 
    cbreak(); 
    keypad(stdscr, TRUE); 


    int height=15; 
    int width=30; 
    int starty=25; 
    int startx=25; 

    printw("F9 to exit"); 
    refresh(); 

    mywin = newwin(height, width, starty, startx); 
    mvwprintw(mywin,0,0,"First line\n"); 
    wprintw(mywin,"Second line"); 
    wrefresh(mywin); 

    while(getch() != KEY_F(9)) {} 

    endwin(); 
    return 0; 
} 

이 방법이 적합하지 않은 경우 인쇄하려는 다음 위치로 수동으로 이동해야합니다.