1

我看过很多关于这个的帖子,但没有一个回答这个问题,他们给出了不起作用的例子,你得到的只是更多的错误消息,或者只是在其他切线被发送。ncurses 不断被提及,但我在 OS X 上找到的示例都没有,尽管声称。这些示例要么是错误的,要么在发布之前没有经过实际测试。我会在这些帖子中添加评论,但由于我是新用户,所以我不能询问任何关于它们的内容,这也很荒谬,因为这比必须开始一个新主题要容易得多。

我希望程序问一个问题,等待用户输入并读取每个按下的键而不按下返回键,几年前我相当精通 Turbo Pascal,这很容易做到,就像 Pascal 中的大多数事情一样,它只会工作......我认为C ++会相似,相反,您只是不断面临相反的平台特定用例,以及永远不会编译的示例。

我在 OS X 上使用 CLion 2017.2.2。

4

1 回答 1

0

这是 ncurses 的示例代码。我在linux下测试过它,但它也应该在mac os下工作。

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


int main(void) {
    WINDOW * mainwin;

    if ( (mainwin = initscr()) == NULL ) {
          fprintf(stderr, "Error initialising ncurses.\n");
          exit(EXIT_FAILURE);
    }

    mvaddstr(13, 33, "Input: ");
    refresh();
    char input[2];
    input[0] = getch();
    input[1] = '\0';
    mvaddstr(15, 33, "Your Input is: ");
    mvaddstr(15, 48, input);
    mvaddstr(17, 33, "Press any key to exit");
    getch();

    delwin(mainwin);
    endwin();
    refresh();

    return EXIT_SUCCESS;
}

有必要链接到 ncurses。我使用 cmake 来管理我的构建:

cmake_minimum_required(VERSION 3.5)
project(ncurses)
set(CMAKE_CXX_STANDARD 11)

set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wextra")

find_package(Curses REQUIRED)

add_executable(ncurses main.cpp)
target_link_libraries(ncurses ${CURSES_LIBRARIES})
于 2018-10-19T13:03:45.983 回答