我的程序從網絡上讀取一些文本數據,如: Hello \033[1;34mworld\033[0m and bla bla bla!!!\n"
。 當程序使用prinf輸出這個字符串時,單詞「world」是藍色的。但是當我使用wprintw或addch使用ncurses接口時,我看到帶有轉義序列的原始字符串。 這是否意味着printf處理轉義序列或不? 用ncurses處理轉義序列的最佳方式是什麼?使用ncurses處理轉義序列? printf處理轉義序列嗎?
回答
不,您的終端處理轉義序列。你所看到的現象來自於ncurses的全部目的是跟蹤預期的終端內容並能夠重新繪製它,並且作爲這樣做的一部分它剝離了任何轉義序列。它可能會提供解釋他們的替代功能,並將它們應用到它自己的終端應包含的圖像,但否則您將不得不自己做這項工作...
謝謝! 那麼,它是否正確,我有兩種方法: 1.使用替代功能 2.在自己的程序中處理 – van 2012-04-18 15:40:20
您可以更詳細地解釋第一個選擇。我應該修補ncurses庫還是有一些鉤子?如果我使用第二種方式,我應該從遠程端檢查TERM環境變量,它將數據發送給我,還是應該使用另一種方式來確定遠程端的終端類型。當我確定終端類型時,我想我應該使用terminfo數據庫來闡明如何解釋轉義序列,它是否正確? – van 2012-04-18 16:02:59
你絕對不應該修補ncurses。如果它沒有接受帶有顏色轉義的字符串的函數,則需要編寫代碼以使用顏色轉義處理字符串,並將其轉換爲一系列ncurses調用。 – 2012-04-18 16:28:48
- 1. 在DB2中處理轉義序列char
- 2. ncurses的轉義序列檢測
- 3. 如何修復Google美化HTML轉義序列的處理
- 4. 避免ActionScript中的轉義序列處理?
- 5. 如何讓忽略空白處理轉義序列
- 6. 如何printf處理轉換
- 7. Ruby:轉義轉義序列?
- 8. 轉義HTML以處理PHP
- 9. 批處理:使用脫字符轉義
- 10. 轉義序列
- 11. 使用轉義序列
- 12. 使用轉義序列
- 13. 如何使用自定義異常處理程序處理javax.el.PropertyNotFoundException
- 14. 處理程序的含義
- 15. 定義處理程序在
- 16. PHP:轉義序列#
- 17. XSL轉義序列
- 18. ANSI轉義序列
- 19. 如何在onCommand處理程序中處理轉義和返回鍵>
- 20. 如何用Linux內核中的用戶定義處理程序替換缺省處理程序,該處理程序處理生成核心轉儲的異常?
- 21. 在Python中轉義轉義序列
- 22. 使用自定義處理程序的Rails部分模板正在轉義html
- 23. Ncurses用Perl轉義
- 24. 轉義序列用 「\」 符號
- 25. 用其未轉義值替換轉義轉義序列
- 26. 如何在ANTLR 3中處理字符串文字中的轉義序列?
- 27. 處理器序列號
- 28. 矩陣處理大序列
- 29. 處理OpenCV中的序列?
- 30. 處理For循環序列
http://stackoverflow.com/問題/ 4373690/ansi-colors-in-c-and-ncurses – 2015-10-19 08:51:00