我用 Matlab Coder 制作了这个简单代码的可执行文件:
function hello (s_a,d_b,d_c)
fprintf('%s\n',s_a);
fprintf('%d\n',d_b/d_c);
fprintf('%d\n',d_b*d_c);
end
当我在窗口命令提示符下运行此可执行文件时,我可以看到结果。
当我使用 StandardOuptut 的重定向和 StandardError 的重定向时,我的文件已创建,但它是空的。
我尝试了一个简单命令的重定向,它对我有用。
所以,我认为问题出在我的可执行文件上。 您知道如何重定向 Matlab 生成的可执行文件的输出吗?
我知道这是一个老问题,但会为遇到这个问题的人发布一个可能的解决方案。 您可以在 Matlab 中将 frpintf 转换为文本文件:
fileID = fopen('output.txt','at+');
fprintf(fileID,'%s\n',s_a);
fprintf(fileID,'%d\n',d_b/d_c);
fprintf(fileID,'%d\n',d_b*d_c);
此外,您可以使用 FileStream 从另一个应用程序读取文本文件,例如,假设 FileShare 设置为 FileShare.ReadWrite,
FileStream logFS = new FileStream("output.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader Sr = new StreamReader(logFileStream);
while (!Sr.EndOfStream)
{
string line = Sr.ReadLine();
//do something
}
Sr.Close();
logFS.Close();