Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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++中的MAC——无需在终端中显示_C++_Eclipse_Macos_Terminal_Ncurses - Fatal编程技术网

C++中的MAC——无需在终端中显示

C++中的MAC——无需在终端中显示,c++,eclipse,macos,terminal,ncurses,C++,Eclipse,Macos,Terminal,Ncurses,我正试图通过Eclipse运行这段代码。它在编译时没有错误,并在运行时将终端设置为打开,但在终端中没有显示任何内容,即使假定我已将其编码为显示一个框。有人能告诉我需要做什么才能正确显示吗 谢谢 #include <iostream> #include <stdlib.h> #include <curses.h> #include <unistd.h> void set_difficulty(int level,int &v); void

我正试图通过Eclipse运行这段代码。它在编译时没有错误,并在运行时将终端设置为打开,但在终端中没有显示任何内容,即使假定我已将其编码为显示一个框。有人能告诉我需要做什么才能正确显示吗

谢谢

#include <iostream>
#include <stdlib.h>
#include <curses.h>
#include <unistd.h>

void set_difficulty(int level,int &v);
void SetMenuBox(WINDOW*&);

int main(){
    int speed = 0;
    chtype a=219;
    initscr();                                          //initialize screen
    WINDOW *win = newwin(20,40,15,20);                  //create new window (row,col,x,y) where (x,y) is top left corner
    wrefresh(stdscr);                                   //refresh standard screen
    start_color();                                      //enable color changes
    init_pair(1,COLOR_RED,COLOR_BLACK);                 //create color pair of red text with black outline
    init_pair(2,COLOR_GREEN,COLOR_BLACK);
    attron(COLOR_PAIR(1));                              //use the color pair
    wattron(win,COLOR_PAIR(1));
    wrefresh(win);
    wborder(stdscr,0,0,0,0,0,0,0,0);                    //create border around win using lines
    wborder(win,a,a,a,a,a,a,a,a);                       //create border around standard window
    wrefresh(stdscr);
    wrefresh(win);
    wmove(win,2,18);                                    //move cursor
    wprintw(win,"MENU");                                //print "MENU" at cursor
    wmove(win,5,2);
    wprintw(win,"Select Difficulty:");
    wmove(win,7,2);
    wprintw(win,"1==Easy");
    wmove(win,9,2);
    wprintw(win,"2==Medium");
    wmove(win,11,2);
    wprintw(win,"3==Hard");
    wmove(win,13,2);
    wprintw(win,"0==EXIT");
    wmove(win,18,19);
    wrefresh(win);                                      //the character typed will be green not blue
    int d=wgetch(win);                                  //get character from win, d is the ascii number
    sleep(500);                                         //pause for 1000 ms
    wmove(win,28,25);
    while(d<48||d>51){                                  //keeps getting character until an allowable
        wborder(win,32,32,32,32,32,32,32,32);           //character is selected
        mvwdelch(win,18,19);
        wborder(win,a,a,a,a,a,a,a,a);
        wmove(win,18,19);
        wrefresh(win);
        d = wgetch(win);
        sleep(500);
    }
    if(d==48)
        return 0;
    else if(d>48&&d<=51){
        set_difficulty(d,speed);
    }
    wrefresh(win);
    sleep(1000);
    wclear(win);
    SetMenuBox(win);
    wrefresh(win);
    wmove(win,15,18);
    wprintw(win,"%d",speed);
    wrefresh(win);
    sleep(1000);
    //endwin();                                         //close window
    return 0;
}

void set_difficulty(int level,int &v){
    switch (level){
    case 49:
        v = 2500;
        break;
    case 50:
        v = 1750;
        break;
    case 51:
        v = 1250;
        break;
    }
}

void SetMenuBox(WINDOW *&w){
    chtype a = 219;
    delwin(w);
    wrefresh(stdscr);
    w = newwin(30,40,15,20);
    wrefresh(stdscr);
    wrefresh(w);
    init_pair(1,COLOR_RED,COLOR_BLACK);                 //create color pair of red text with blue outline
    attron(COLOR_PAIR(1));                              //use the color pair
    wattron(w,COLOR_PAIR(1));
    wrefresh(w);
    wborder(w,a,a,a,a,a,a,a,a);
    wrefresh(w);
}

无法复制。你试过从终端运行它吗?如果问题只是要显示一些东西,您是否考虑过编写一个短于96行的程序,这样您就有可能缩小问题的范围?我是否可以将其复制并粘贴到终端?当我运行程序时,我将eclipse设置为打开终端。对不起,我以前从未处理过终端。没有-只需打开终端,cd到可执行文件所在的目录,然后键入./myprog,其中myprog是可执行文件的名称。