1

我在 MATLAB 中执行我的 c++ 编译程序dos('myprog.exe')。myprog 产生一些输出,仅在 myprog.exe 完成执行后才会打印到 MATLAB 命令窗口。

有没有办法强制 MATLAB 在 myprog.exe 生成输出时而不是在最后打印输出?

4

1 回答 1

2

解答 确保您正确刷新了 c++ 程序中的输出缓冲区。以我的经验,有时在代码中插入额外的刷新命令(不仅仅是行尾命令)会有所帮助:

std::cout << std::endl;

注意 你也可以尝试这样调用你的程序:

[status,result] = dos('myprog.exe','-echo') 
[status,result] = system('myprog.exe','-echo') 

matlab 帮助说:“'echo' 强制输出到命令行窗口,即使它也被分配到变量中。”

但是,这可能不起作用,因为(再次 matlab 帮助): “控制台程序永远不会在后台执行。此外,MATLAB 软件总是等待标准输出管道关闭,然后再继续执行。”这意味着,matlab 可能会等到您的程序完成它在向您显示控制台输出之前执行。在这种情况下,您无能为力。

于 2011-09-23T15:35:53.720 回答