Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何修复';打开终端时出错:未知;课程C和x2B+;苹果操作系统_C++_Terminal_Ncurses_Term - Fatal编程技术网

C++ 如何修复';打开终端时出错:未知;课程C和x2B+;苹果操作系统

C++ 如何修复';打开终端时出错:未知;课程C和x2B+;苹果操作系统,c++,terminal,ncurses,term,C++,Terminal,Ncurses,Term,我想不出来。正在尝试在终端中实现snake游戏。以下代码在Visual Studio代码集成终端中运行正常,但在Mac OS终端中运行相同程序时返回打开终端时出错:未知。。不知道为什么我在这两个终端上得到不同的结果。当我在两个终端中用printenv检查术语变量时,它们会说TERM=xterm-256color #include <stdio.h> #include <ncurses.h> #include <iostream> #include <un

我想不出来。正在尝试在终端中实现snake游戏。以下代码在Visual Studio代码集成终端中运行正常,但在Mac OS终端中运行相同程序时返回
打开终端时出错:未知。
。不知道为什么我在这两个终端上得到不同的结果。当我在两个终端中用
printenv
检查术语变量时,它们会说
TERM=xterm-256color

#include <stdio.h>
#include <ncurses.h>
#include <iostream>
#include <unistd.h>

enum direction { UP, DOWN, LEFT, RIGHT };

int main()
{
    int ch;
    int ** field;
    direction snake_direction;

    WINDOW *snake_window;

    initscr();
    clear();
    noecho();
    cbreak();
    snake_window = newwin(0, 0, 0, 0);
    keypad(snake_window, TRUE);
    nodelay(snake_window, TRUE);

    int x = 5;
    int y = 5;

    for (int i = 0; i < 20; i++)
    {
        for (int j = 0; j < 20; j++)
        {
            if (i == x && j == y)
            {
                mvwaddch(snake_window, i, j, 64);
            }
            else if ( i == 0 || i == 19)
            {
                mvwaddch(snake_window, i, j, 88);
            }
            else if (j == 0 || j == 19)
            {
                mvwaddch(snake_window, i, j, 88);
            }
            else
            {
                mvwaddch(snake_window, i, j, 32);
            }
         }
    }
    while (ch != 113)
    {
        usleep(1 * 1000000);
        ch = wgetch(snake_window);
        switch(ch)
        {
            case(KEY_UP):
                snake_direction = UP;
                break;
            case(KEY_DOWN):
                snake_direction = DOWN;
                break;
            case(KEY_LEFT):
                snake_direction = LEFT;
                break;
            case(KEY_RIGHT):
                snake_direction = RIGHT;
                break;
            case(ERR):
                break;
        }

        if (snake_direction == UP)          { x--; }
        else if (snake_direction == DOWN)   { x++; } 
        else if (snake_direction == LEFT)   { y--; } 
        else if (snake_direction == RIGHT)  { y++; } 

        for (int i = 0; i < 20; i++)
        {
            for (int j = 0; j < 20; j++)
            {
                if (i == x && j == y)
                {
                    mvwaddch(snake_window, i, j, 64);
                }
                else if ( i == 0 || i == 19)
                {
                    mvwaddch(snake_window, i, j, 88);
                }
                else if (j == 0 || j == 19)
                {
                    mvwaddch(snake_window, i, j, 88);
                }
                else
                {
                    mvwaddch(snake_window, i, j, 32);
                }
            }
        }
        wrefresh(snake_window);
    }

    endwin();
    return 0;
}


对我有用。你到底是怎么启动的?我在VS代码终端和mac终端上以同样的方式执行程序。在build目录中,只需键入
/snake
。我已经添加到这个程序中,现在它在两个终端都能工作。我只是觉得奇怪为什么这个问题一开始就发生了。我甚至试着重新启动我的电脑,但问题依然存在。对我有效。你到底是怎么启动的?我在VS代码终端和mac终端上以同样的方式执行程序。在build目录中,只需键入
/snake
。我已经添加到这个程序中,现在它在两个终端都能工作。我只是觉得奇怪为什么这个问题一开始就发生了。我甚至试着重新启动我的电脑,但问题依然存在。
cmake_minimum_required(VERSION 2.8)

project(Snake)

find_package(Curses REQUIRED)
include_directories(${CURSES_INCLUDE_DIR})

add_executable(snake src/main.cpp)
target_link_libraries(snake ${CURSES_LIBRARIES})