Я пытаюсь распечатать, используя функцию 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 выполняет свою работу, но она не печатала в заданном окне, вместо этого она печатает вне окна, и текст остается на экране после завершения действия. По окончании экран должен быть очищен.