c++ - ncurses 中的 system() 输出

标签 c++ ncurses

抱歉,如果这是一个非常菜鸟的问题,但我只是从 ncurses(和 C++)开始。

我试图在 ncurses 代码中调用一个系统命令(例如,任何东西都可以工作)并将输出存储在一个变量中,直到我打印它才显示它,但是当我用system() 输出,自动打印在屏幕上。

到目前为止,这是我的代码:

#include <iostream>
#include <string>
#include <ncurses.h>

using namespace std;

string g;

int main()
{

initscr();
int h, w;
getmaxyx(stdscr, h, w);   
cbreak();
refresh();

g=system("date");

WINDOW* w1_b = newwin(h, w/2, 0, 0);
box(w1_b, 0 , 0);
WINDOW* w2_b = newwin(h/2, w/2, 0, w/2);
box(w2_b, 0 , 0);
WINDOW* w3_b = newwin(h/2, w/2, h/2, w/2);
box(w3_b, 0 , 0);

wrefresh(w1_b);
wrefresh(w2_b);
wrefresh(w3_b);

WINDOW* w1 = newwin(h-2, (w/2)-2, 1, 1);
WINDOW* w2 = newwin((h/2)-2, (w/2)-2, 1, (w/2)+1);
WINDOW* w3 = newwin((h/2)-2, (w/2)-2, (h/2)+1, (w/2)+1);

mvwprintw(w1, 1, 1, "Window 1");
mvwprintw(w2, 1, 1, "Window 2");
mvwprintw(w3, 1, 1, "Window 3");

wrefresh(w1);
wrefresh(w2);
wrefresh(w3);

getch();

endwin(); 
return 0;       

}

现在,当 g=system("date"); 被执行时,日期会自动打印在屏幕上,即使我将它存储在一个变量中(在本例中为 g) , 知道什么是错误的吗?

最佳答案

popen() 函数可用于执行命令并以编程方式读取其输出。

关于c++ - ncurses 中的 system() 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41884266/

相关文章:

c - C编程中包含ncurses.h是否也包含stdio.h?

python - 在 curses 模式下,stdout 和 stderr 去了哪里?

c++ - ifstream 和 ofstream 是非标准 C++ header 吗?

c++ - 构造函数 "=default"和 C++ 中编译器生成的构造函数有什么区别?

c - 将屏幕拆分为 ncurses 和非 ncurses 区域

c++ - 如何使用 ncurses 构建复杂的 "graphics"?

c++ - 我应该从 QFileIconProvider 还是 QStyle 获取标准图标?

C++ 使用 "new"创建静态类数组或创建动态数组的另一种方法

c++ - 使用 C++ 填充 TreeView 内容

ncurses - 需要刷新而不是刷新?