抱歉,如果这是一个非常菜鸟的问题,但我只是从 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/