C++ でコンパイルしたプログラムを MATLAB で実行していdos('myprog.exe')
ます。myprog は、myprog.exe の実行が終了した後にのみ、MATLAB コマンド ウィンドウに出力される出力を生成します。
最後ではなく myprog.exe によって生成されたときに MATLAB 出力を強制する方法はありますか?
C++ でコンパイルしたプログラムを MATLAB で実行していdos('myprog.exe')
ます。myprog は、myprog.exe の実行が終了した後にのみ、MATLAB コマンド ウィンドウに出力される出力を生成します。
最後ではなく myprog.exe によって生成されたときに MATLAB 出力を強制する方法はありますか?
回答 C++ プログラムで出力バッファを正しくフラッシュしていることを確認してください。私の経験では、追加のフラッシュ コマンド (行末コマンドだけでなく) をコードに挿入すると役立つ場合があります。
std::cout << std::endl;
注 次のようにプログラムを呼び出すこともできます。
[status,result] = dos('myprog.exe','-echo')
[status,result] = system('myprog.exe','-echo')
matlab ヘルプには次のように書かれています。
ただし、これは機能しない可能性があります (再び matlab ヘルプ): 「コンソール プログラムはバックグラウンドで実行されることはありません。また、MATLAB ソフトウェアは、実行を継続する前に stdout パイプが閉じるのを常に待機します。」つまり、matlab はプログラムが終了するまで待機する可能性があります。コンソール出力を表示する前に実行します。その場合、あなたがそれについてできることは何もありません。