gpt4 book ai didi

c++ - 如何在不结束 C++ 程序的情况下结束 ncurses?

转载 作者:IT王子 更新时间:2023-10-29 00:55:42 25 4
gpt4 key购买 nike

我一直在尝试制作一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com