#include <boost/graph/graphviz.hpp>
#include <boost/graph/grid_graph.hpp>
typedef boost::grid_graph<2> Grid;
int main()
{
boost::array<std::size_t, 2> lengths = { { 3, 5 } };
Grid grid(lengths);
std::ofstream gout;
gout.open("test.dot");
boost::write_graphviz(gout, grid);
}
我跑
system('neato -Tpng overlap=false test.dot > test.png');
来自c ++程序。它没有工作。即没有创建png文件
当我从控制台提示符运行相同的命令时,它确实按预期工作。
答案 0 :(得分:4)
如果重定向在系统的shell上不起作用,请使用选项:
system("neato -Tpng overlap=false test.dot -o test.png");
还要注意您的工作目录。确保您的输入位于当前工作目录中,并检查您是否在同一目录中查找输出(test.png
)。
或者,拼出路径
system("neato -Tpng overlap=false /path/to/dir/test.dot -o /path/to/dir/test.png");
CAVEAT:当然,在C ++字符串中,如果您的路径包含反斜杠,则需要转义反斜杠