Я делаю двумерную игру типа искателя подземелья для класса. Я пытаюсь получить пользовательский ввод, не требуя нажатия клавиши ввода. В частности, я хочу использовать w s s как направленные клавиши для перемещения по 2D-массиву.Getch() несовместим с функцией отображения в linux C++
Я пробовал использовать библиотеку ncurses, но в настоящее время она работает с моей функцией отображения (я считаю, что при использовании endl).
Обычно моя плата отображается будет выглядеть так:
ххх
ххх
ххх
Но при использовании Гечи() из библиотеки Ncurses моей плата выглядит следующим образом:
ххх
..... .xxx
............ xxx
Есть ли способ использовать getch() из библиотеки curses, не мешая моей функции печати?
void ParkBoard::print() {
displayMessage();
for (int i = 0; i < getSize(); i++) {
cout << " ";
for (int j = 0; j < getSize(); j++) {
if (j == 0) {
parkBoard[i][j]->display();
}
else {
cout << " ";
parkBoard[i][j]->display();
}
}
cout << endl;
}
Я никогда раньше не использовал файловый дескриптор. Я пытаюсь понять, как настроить его, но я немного потерян. Таким образом, он не должен читать ввод из файла, это может быть просто нажатие клавиш? Кроме того, это правильная настройка: ssize_t read (int fd, void * buf, size_t count); – Kazuo
Вам не нужно ничего устанавливать. Файловый дескриптор 0, стандартный ввод, наследуется процессом. –