C++ 如何在不结束C++;节目?

C++ 如何在不结束C++;节目?,c++,linux,ncurses,C++,Linux,Ncurses,我一直在尝试制作一个ncurses程序,该程序将在某一点结束ncurses模式,并在正常终端模式下恢复,但仍保持程序运行。 可能吗endwin()结束程序。 这是我的代码(不用担心函数,我以前做过): clear(); 刷新(); endwin(); boxmessage(“步骤1”); consolewrite(“删除人气竞赛…”); std::vector removepak; removepak.push_back(“人气大赛”); removepackages(removepak); e

我一直在尝试制作一个ncurses程序,该程序将在某一点结束ncurses模式,并在正常终端模式下恢复,但仍保持程序运行。 可能吗<代码>endwin()结束程序。 这是我的代码(不用担心函数,我以前做过):

clear();
刷新();
endwin();
boxmessage(“步骤1”);
consolewrite(“删除人气竞赛…”);
std::vector removepak;
removepak.push_back(“人气大赛”);
removepackages(removepak);
endwin()
没有终止您的程序;一定是别的什么东西在这样做

此程序在我的系统(Ubuntu 11.04,g++4.5.2)上正常工作:

#包括
#包括
#包括
int main(){
initscr();
mvaddstr(10,10,“你好,世界”);
刷新();
睡眠(4);
endwin();

std::难道我以前从未使用过NCurses吗,但是您是否尝试过从命令行调用可执行文件?是的,我尝试过这样做(我总是这样做)。
endwin()
应该做你想做的事。对我来说很好。这不应该发生。根据文档,endwin只是恢复终端。文档甚至说:“在调用initscr之后的任何时候,应该在退出之前调用endwin()这对我来说意味着退出是一件独立的事情。什么是boxmessage呢?它是不是碰巧是一个ncurses comand?因为如果你结束了ncurses,我不希望它起作用。如果你在那一点上只使用
std::cout
clear();
refresh();
endwin();
boxmessage("STEP 1");
consolewrite("Removing Popularity Contest...");
std::vector<std::string> removepak;
removepak.push_back("popularity-contest");
removepackages(removepak);
#include <curses.h>
#include <unistd.h>
#include <iostream>
int main() {
    initscr();
    mvaddstr(10, 10, "Hello, world");
    refresh();
    sleep(4);
    endwin();
    std::cout << "DONE\n";
}