作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我一直在尝试制作一个 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);
最佳答案
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 的最新评论:
OK, I found the bug. It was just because I made a series of buttons, then I did the 'case: x' part, and I just didn't write the integer that calls the function correctly. Thanks for trying to help!
关于c++ - 如何在不结束 C++ 程序的情况下结束 ncurses?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379529/
我是一名优秀的程序员,十分优秀!