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 секунд, затем восстанавливает экран и печатает «ВЫПОЛНЕНО».
Как упоминалось в комментариях, если boxmessage()
использует ncurses, он не будет работать после вызова endwin()
.
Попробуйте добавить после endwin()
некоторый код, который создает и записывает файл, просто чтобы убедиться, что ваша программа не умирает прямо здесь.
Обновление (спустя почти 16 месяцев), цитируя самый последний комментарий ОП:
ОК, я нашел ошибку.Это было только потому, что я сделал серию кнопок, затем я сделал часть 'case: x', и я просто не написал целое число, которое правильно вызывает функцию.Спасибо за попытку помочь!