getch 不读取键盘输入

getch not reading keyboard input

正在尝试为简单的终端游戏获取用户输入。我在 Mac OS。

#include <stdio.h>
#include <curses.h>
#include <iostream>

int main()
{
    int ch;
    while (ch != 113)
    {
        ch = getch();
        std::cout << ch << std::endl;
    }

    return 0;
}

在这个例子中,我试图简单地打印我的击键,但 ch = getch() 似乎没有做任何事情。它不等待按键, std::cout << ch << std::endl 只是重复打印 -1 。无法弄清楚我在这里做错了什么。

您需要先调用 initscr,然后再调用任何其他 curses 函数。 http://www.cs.ukzn.ac.za/~hughm/os/notes/ncurses.html

#include <stdio.h>
#include <curses.h>
#include <iostream>

int main()
{
    int ch;
    initscr(); // <----------- this
    while (ch != 113)
    {
        ch = getch();
        std::cout << ch << std::endl;
    }

    return 0;
}