원하면 무엇입니까? 기본 예제 중 하나 인 here에서 변형되었습니다. 우리가 C에 따라
#include <fstream>
#include <iostream>
#include <string>
#include <ncurses.h>
int main()
{
std::ifstream inputfile("filew.txt");
std::string line;
initscr();
if(inputfile.is_open())
{
while (inputfile >> line)
{
printw("%s\n", line.c_str());
}
} else
{
printw("didnt find file `file.txt`\n");
}
refresh();
std::cin.ignore();
endwin();
}
는 ++ 세계 나는 예외가 endwin
를 사용하여 청소하지 않고 프로그램을 종료 할 때 우리가 발생할 수있는 약간 겁 것입니다. 그래서 아마 예외를 안전하게 만들기 위해 간단한 RAII 래퍼를 추가 할 것입니다.
#include <fstream>
#include <iostream>
#include <string>
#include <ncurses.h>
class ncursewrap
{
public:
ncursewrap() { initscr(); }
~ncursewrap() { endwin(); }
void refresh() { ::refresh(); }
};
int main()
{
std::ifstream inputfile("file.txt");
std::string line;
ncursewrap nc;
if(inputfile.is_open())
{
while (inputfile >> line)
{
printw("%s\n", line.c_str());
}
} else
{
printw("didnt find file `file.txt`\n");
}
nc.refresh();
std::cin.ignore();
}
은 다행 우리는 [축복]이 (https://pypi.python.org/pypi/blessings) –
정말 고마워요! 이것은 정말로 도움이되었습니다. 래퍼는 항상 ncurses와 함께 사용해야합니까? – Char
사물을 단순화시켜야 할 이미 소수가 없다면 놀랄 것입니다. 아마 좋은 생각인데, 소멸자에서 정리되는 래퍼 (wrapper)를 보호해야하는 예외가 어디서 발생했는지 추적하는 것은 매우 어렵습니다. –