#rust #ncurses
#Ржавчина #ncurses
Вопрос:
Всякий раз, когда я запускаю следующую программу, я получаю пустой экран, а не строку «привет»:
use ncurses as n;
fn main() {
render::setup_ncurses();
let win = n::newwin(30, 30, 0, 0);
n::waddstr(win, "hello");
n::wrefresh(win);
// n::refresh(); <-- this doesn't work either
n::getch();
// n::wgetch(win); <-- doesn't work either
n::endwin();
}
С помощью функции настройки:
pub fn setup_ncurses() {
// Allows for wide characters
n::setlocale(n::LcCategory::all, "");
n::initscr();
// Captures signal sequences and no buffer
n::raw();
// F keys and arrows
n::keypad(n::stdscr(), true);
// Doesn't echo typed keys
n::noecho();
}
Есть ли какое-то странное поведение с Windows, которое мне не хватает? Этого не происходит при использовании stdscr
.
Ответ №1:
Изменить:
let win = n::newwin(30, 30, 0, 0);
для:
let win = n::subwin(n::stdscr(), 30, 30, 0, 0);
Комментарии:
1. Спасибо, это работает, но я попытался просмотреть документацию для sub win, и я не совсем понимаю, почему это имеет значение. Не могли бы вы объяснить?