【发布时间】:2012-10-18 03:27:30
【问题描述】:
我最近创建了一个简单的程序,它遍历数值计算,将结果写入 3 个文件,然后将这些文件传递给 Gnuplot。作为一个命令行工具,一切似乎都可以工作,但是我已经将所有相同的代码移到了一个在 Xcode 上具有简单界面的程序中,并且我没有得到任何图形输出。我在调试器中逐步执行程序,一切似乎都在工作(到 gnuplot 的管道、文件、所有对象似乎都已创建,并且一切都按预期的顺序发生),但没有可见的输出。下面的代码应该还能用吗?
FILE *SomeFile=fopen("SomeFile.txt", "w");
fprintf(SomeFile, "%g\t", SomeNumber);
FILE *pipe=popen("gnuplot", "w");
fprintf(pipe, "plot \"%s\"\n", [filename UTF8String])
其中 NSString 文件名中的文件名是 SomeFile.txt 。
这在命令行程序中运行良好,知道我现在哪里出错了吗?
【问题讨论】:
-
如果添加
fprintf(pipe,"set term post;set output 'foo.ps'\n");会发生什么?你有情节foo.ps吗?要研究的另一件事是刷新 SomeFile (fflush(SomeFile);)。如果您的输出被缓冲,那么在 gnuplot 尝试读取它时文件中可能没有数据。 -
您在刷新文件/管道方面是 100% 正确的,谢谢!感谢您的帮助 - 如果可以的话,我会支持你:)