我正在用dos('myprog.exe')
在MATLAB中执行我的c ++编译程序。 myprog生成一些输出,只有在myprog.exe完成执行后才会打印到MATLAB命令窗口。
有没有办法强制MATLAB在myprog.exe生成输出时打印输出而不是最后?
答案 0 :(得分:2)
<强> ANSWER 强> 确保正确刷新c ++程序中的输出缓冲区。根据我的经验,有时可以在代码中插入额外的刷新命令(不仅仅是行尾命令):
std::cout << std::endl;
注意强> 您也可以尝试这样调用您的程序:
[status,result] = dos('myprog.exe','-echo')
[status,result] = system('myprog.exe','-echo')
matlab帮助说:“'echo'强制输出到命令窗口,即使它也被分配到变量中。”
然而,这可能不起作用,因为(再次matlab帮助): “控制台程序永远不会在后台执行。此外,MATLAB软件总是在继续执行之前等待stdout管道关闭。”这意味着,matlab可能会等到程序完成执行才会显示你控制台输出。在那种情况下,你无能为力。