Функция mvwprintw не печатает должным образом - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь распечатать, используя функцию ncurses mvwprintw, но не удалось напечатать в данном окне?

while (tmp2->next != NULL) {     // Adjust coord for local win for printf   
        mvwprintw (local_win, start_y, start_x, "%d ", tmp2->n);

        tmp2 = tmp2->next;         
    }
this piece of code does not produce expected result.

/* 
 * ===  FUNCTION  ====================================================
 *         Name:  void traversebeg()
 *  Description:  Traverse from beginning
 * ===================================================================
 */
#ifdef _TEST_
void traversebeg()
{   
    int height, width, start_y, start_x;
    height = 22;
    width  = 70;
    start_y = (LINES - height)/2;
    start_x = (COLS - width)/2;
    char *msg = "Double linked List is EMPTY! Nothing to show!";
    WINDOW *local_win = newwin (height, width, start_y, start_x);
    box (local_win, 0, 0);
    wrefresh(local_win);

    tmp2 = h;

    getmaxyx (local_win, start_y, start_x);

    if (tmp2 == NULL) {
        mvwprintw (local_win, start_y/2, (start_x - strlen(msg))/2, "%s",msg);
        wgetch(local_win);
        wclear (local_win);
        destroy_win (local_win);
        return;
    }

    getmaxyx (local_win, start_y, start_x); // Extract coord for local_win
    mvwprintw (local_win, start_y, start_x, "List element from beginning: ");
    refresh();

    while (tmp2->next != NULL) {     // Adjust coord for local win for printf   
        mvwprintw (local_win, start_y, start_x, "%d ", tmp2->n);

        tmp2 = tmp2->next;         
    }

    mvwprintw (local_win, start_y +1, start_x, "Press key exit");
    wgetch (local_win);
    wclear (local_win);
    destroy_win (local_win);
}       /* -----  end of function void traversebeg()  ----- */

Функция mvwprintw выводит все перечисления структуры tmp2 в одну и ту же строку. Хотя функция ncurses printw выполняет свою работу, но она не печатала в заданном окне, вместо этого она печатает вне окна, и текст остается на экране после завершения действия. По окончании экран должен быть очищен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...