我一直在尝试制作一个ncurses程序,该程序将在某一点结束ncurses模式,并在正常的终端模式下恢复,但仍然保持程序运行。
可能吗? endwin();
结束该计划。
这是我的代码(不要担心功能,我之前做过):
clear();
refresh();
endwin();
boxmessage("STEP 1");
consolewrite("Removing Popularity Contest...");
std::vector<std::string> removepak;
removepak.push_back("popularity-contest");
removepackages(removepak);
答案 0 :(得分:4)
endwin()
并未终止您的计划;别的东西必须这样做。
此程序在我的系统上正常工作(Ubuntu 11.04,g ++ 4.5.2):
#include <curses.h>
#include <unistd.h>
#include <iostream>
int main() {
initscr();
mvaddstr(10, 10, "Hello, world");
refresh();
sleep(4);
endwin();
std::cout << "DONE\n";
}
清除屏幕,在预期位置打印“Hello,world”,睡眠4秒钟,然后恢复屏幕并打印“DONE”。
正如评论中提到的,如果boxmessage()
使用ncurses,则在您致电endwin()
后它无效。
尝试在创建和写入文件的endwin()
之后添加一些代码,只是为了验证您的程序是否在那里死亡。
更新(将近16个月后)引用OP的最新评论:
好的,我发现了这个错误。这只是因为我制作了一系列按钮, 然后我做了'case:x'部分,我只是没有写整数 正确调用函数。感谢您的帮助!