我試圖爲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. 將控制檯輸出解析爲獨立字符串
- 5. 將控制檯輸出重定向到java中的字符串
- 6. javascript輸出返回到控制檯
- 7. Java從控制檯輸入字符串輸入
- 8. 將控制檯輸出作爲返回語句Java
- 9. 詹金斯:控制檯輸出字符
- 10. 解釋Java字符串
- 11. Java控制檯輸出成爲下一個控制檯輸入
- 12. 如何在Java中從控制檯獲取字符串輸入?
- 13. Java控制檯程序不讓我輸入字符串
- 14. 返回字符串輸入字符串
- 15. java控制檯輸出的默認字符編碼
- 16. 字符串格式輸出控制檯vs GUI
- 17. 在python字符串中獲取控制檯輸出
- 18. 對外輸出字符串到控制檯 - ASM 8086
- 19. 如何更換控制檯輸出,如果字符串長度
- 20. Windows CE控制檯輸出轉換字符串
- 21. 如何將控制檯輸出轉換爲字符串?
- 22. FASM:字符串存儲和控制檯輸出
- 23. 如何對齊字符串在控制檯輸出
- 24. Unicode和控制檯解釋
- 25. 解釋(並超越)神祕的控制檯輸出
- 26. Java格式輸出到多個字符串值的控制檯/ JTextArea
- 27. 我怎麼能讀Java控制檯輸出到字符串緩衝區
- 28. Chrome開發人員工具將控制檯日誌字符串輸出錯誤地解釋爲鏈接
- 29. 解釋Java字節[]作爲字符串
- 30. Java控制檯輸出 - 文件和控制檯BOTH
什麼樣的字符串?一個'char *'或一個'wchar_t *'或一個'std :: string'或一個'NSString'? – 2013-03-22 07:08:49
轉換是可能的,所以它沒有關係。 – 2013-03-22 07:43:38