-1

试图为一个简单的终端游戏获取用户输入。我在 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 。无法弄清楚我在这里做错了什么。

4

1 回答 1

3

您需要initscr在任何其他诅咒函数之前先调用。 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;
}
于 2020-05-28T03:25:31.570 回答