我一直在尝试制作一个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);
Run Code Online (Sandbox Code Playgroud)
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";
}
Run Code Online (Sandbox Code Playgroud)
它清除屏幕,在预期位置打印“Hello, world”,休眠 4 秒,然后恢复屏幕并打印“DONE”。
正如评论中提到的,如果boxmessage()使用 ncurses,在您调用endwin().
尝试在endwin()创建并写入文件之后添加一些代码,只是为了验证您的程序不会在那里死掉。
更新(近 16 个月后),引用 OP 的最新评论:
好的,我找到了错误。只是因为我做了一系列按钮,然后我做了'case:x'部分,我只是没有写出正确调用函数的整数。感谢您的帮助!
| 归档时间: |
|
| 查看次数: |
2824 次 |
| 最近记录: |