0

我正在尝试运行一个 matlab 文件,该文件在另一个文件中打印一个值,然后在我的 c++ 应用程序中读取该值。我的代码是:

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

使用标准输出。

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

文件*流; if((stream = freopen("file.txt", "w", stdout)) == NULL) exit(-1);

printf("这是标准输出\n");

流 = freopen("CON", "w", 标准输出);

printf("现在又回到控制台\n");

于 2013-07-02T00:57:16.023 回答