如何在c++ ncurses中做到这一点
How to do this in c++ ncurses?
ifstream inputfile;
string line;
if (inputfile.is_open())
{
while (getline(inputfile,line))
{
cout << line << endl;
}
inputfile.close();
}
这是我想在护士中实现的行为。我想将文本内容打印到护士窗口而不是控制台。我应该用getstr()和printw()代替getline()一个字符数组而不是字符串吗?
这是你想要的吗?它改编自这里的一个基本例子。
#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("%sn", line.c_str());
}
} else
{
printw("didnt find file `file.txt`n");
}
refresh();
std::cin.ignore();
endwin();
}
因为我们是在c++世界里,我有点害怕一个异常可能会导致我们在没有使用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("%sn", line.c_str());
}
} else
{
printw("didnt find file `file.txt`n");
}
nc.refresh();
std::cin.ignore();
}
相关文章:
- 这是什么类型的C++语法,我应该采取什么步骤来理解这一点
- 我无法理解这一点,有人可以帮我解释一下吗?
- 结构本身就包含在内.如何理解这一点?
- 只需要知道我在c ++中打印模式的方式是否有效,或者有另一种方法可以有效地做到这一点
- 我可以直接为指针分配地址吗?如果是,如何做到这一点
- 请证明这一点的合理性 C++.
- 为什么要按值传递string_view?为什么Visual Studio不能优化这一点?
- [expr.unary.op]/9 似乎暗示"运算符!()' 不能应用于下面的类型 A.但编译器不同意这一点
- 为什么我有一个无限循环,我如何以不同的方式做到这一点
- 我想使用 CMake 生成和编译 Visual Studio projet,我需要从构建中排除单元测试文件。有没有办法做到这一点?
- 所有版本的 GCC 都与默认成员初始值设定项作斗争,该初始值设定项捕获了这一点,并结合了继承的构造函数
- 如果有条件使用String.length()的条件,为什么不一致地评估这一点
- 对随机序列进行降采样会降低随机性吗?有没有原理/定理来证明这一点?
- 在C++有没有更好的方法可以做到这一点?检查哪些数字满足条件 [A*B*C = A! + B! + C!]
- 4.5年应该是4年零178年,我如何在C 中做到这一点
- 为什么添加constexpr使VS2013拒绝这一点
- 如何在GTEST中否定匹配者断言或期望这一点
- 循环工作时如何做到这一点?
- Ncurses/C/C++:使用 getstr() 并防止溢出(必须有更好的方法来做到这一点)
- 如何在c++ ncurses中做到这一点