0

別のファイルに値を出力し、その値を C++ アプリケーションで読み取る matlab ファイルを実行しようとしています。私のコードは次のとおりです。

int disponibilitate;
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );

LPTSTR szCmdline = _wcsdup(TEXT("\"D:\\Program Files\\Matlab\\bin\\matlab.exe\" -nodisplay -nosplash -nodesktop -r \"run('C:\\Users\\Lucian\\Desktop\\licenta visual studio\\licenta\\licenta\\simulare.m');exit;\""));

if( !CreateProcess(NULL, szCmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))

{
    printf( "CreateProcess failed (%d).\n", GetLastError() );
    return;
}
    fin.open("simulare_matlab_out.txt");
    fin>>disponibilitate;
    cout<<disponibilitate;
fin.close();
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );

simulare_matlab_out.txt は、私の matlab アプリケーションの出力ファイルです。C++ プロジェクトを実行すると、ランダムな値が出力されますが、simulare_matlab_out.txt ファイルの値は問題ありません。

!!! 私の問題は、プログラムが作成されたプロセスが終了するのを待たず、作成されたファイルから読み取らないことだと思います!!! 何か助けてください。

4

1 に答える 1

0

STDOUT を使用します。

http://www.cplusplus.com/reference/cstdio/stdout/

ファイル*ストリーム; if((stream = freopen("file.txt", "w", stdout)) == NULL) exit(-1);

printf("これは標準出力です\n");

stream = freopen("CON", "w", stdout);

printf("そして、もう一度コンソールに戻ります\n");

于 2013-07-02T00:57:16.023 に答える