我试图为iphone做一个Java解释器,但是我使用的library只打印控制台输出到NSLog/printf控制台。我希望它返回一个std :: string,我可以转换为NSString并显示在UITextView中。这是否做过?要么捕获控制台日志(它需要被appstore接受),要么改变源添加一个方法来返回一个字符串与缓冲区。慢跑Java解释器返回字符串控制台输出
0
A
回答
1
C标准输入和输出库是你的朋友。
你应该知道NSLog输出到stderr和printf使用stdout。所以根据你的需要,你可以只重定向一个或两个,如果你需要所有的输出。假设我们将所有的流写入一个文件(在我们的stdout和sdterr的例子中是两个),然后当我们完成后关闭这些文件,然后您可以简单地使用文件保存到文档目录中来显示它们。
// get user directory
NSArray *allPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDIR = [allPaths objectAtIndex:0];
NSString *pathForLog = [documentsDIR stringByAppendingPathComponent:@"logFile.txt"];
NSString *pathForError = [documentsDIR stringByAppendingPathComponent:@"errorFile.txt"];
// redirect the stream
freopen([pathForError cStringUsingEncoding:NSASCIIStringEncoding],"w", stderr); // NSLog
freopen([pathForLog cStringUsingEncoding:NSASCIIStringEncoding], "w", stdout); // printf
// your log stuff
printf("i am a robot\n");
NSLog(@"And i do bip bipbip biiiip");
// when you are done, close the stream
fclose (stdout);
fclose (stderr);
// and retrieve your data, as NSString object (or whatever you want)
NSString* dataLog = [NSString stringWithContentsOfFile: pathForLog
encoding: NSASCIIStringEncoding
error: nil];
NSString* errorLog = [NSString stringWithContentsOfFile: pathForError
encoding: NSASCIIStringEncoding
error: nil];
+0
工程就像一个魅力! – 2013-03-22 14:28:38
相关问题
- 1. 控制台输出到字符串
- 2. 使用“返回”之前从控制器输出字符串
- 3. 控制台输入java。解析字符串
- 4. 将控制台输出重定向到java中的字符串
- 5. 将控制台输出作为返回语句Java
- 6. 解释Java字符串
- 7. 如何在Java中从控制台获取字符串输入?
- 8. Java控制台程序不让我输入字符串
- 9. 对外输出字符串到控制台 - ASM 8086
- 10. 如何更换控制台输出,如果字符串长度
- 11. 在python字符串中获取控制台输出
- 12. Windows CE控制台输出转换字符串
- 13. 字符串格式输出控制台vs GUI
- 14. Unicode和控制台解释
- 15. 我怎么能读Java控制台输出到字符串缓冲区
- 16. Chrome开发人员工具将控制台日志字符串输出错误地解释为链接
- 17. Java - 返回字符串
- 18. Java控制台输出 - 文件和控制台BOTH
- 19. 控制台输出
- 20. rails控制台中的命令输出:不需要的输出的解释?
- 21. C++ fread字符串缺少控制台输出上的第一个字符
- 22. Eclipse CDT不解析控制台输出
- 23. 控制台输出在java中变化
- 24. Java - windows/linux中的控制台输出
- 25. 控制台Java中没有输出
- 26. 从spring控制器返回JSON字符串
- 27. 如何修改查询字符串返回控制器查看
- 28. rails 3.1 render_to_string从控制器方法返回空字符串
- 29. grails从控制器返回xml字符串
- 30. 从MVC6/WepApi控制器返回错误字符串
什么样的字符串?一个'char *'或一个'wchar_t *'或一个'std :: string'或一个'NSString'? – 2013-03-22 07:08:49
转换是可能的,所以它没有关系。 – 2013-03-22 07:43:38