2014-03-12 184 views
0

從我讀過的內容中,很不幸,上下箭頭沒有十六進制代碼。只有一個「友好的代碼」。(請參閱鏈接頁面的底部)有誰知道如何使用這個友好的代碼?理想情況下,我只想要一個printf()語句來打印向上或向下箭頭。謝謝! http://www.yellowpipe.com/yis/tools/ASCII-HTML-Characters/在Windows上顯示向上/向下箭頭C++

+0

您可以使用Unicode還是僅限於ASCII? – bbarnhart

+0

這些是HTML代碼的字符代碼,沒有辦法簡單地將它們翻譯成C++ ... – stefan

+0

這個所謂的友好代碼是某些Unicode字符的HTML名稱。 HTML,而不是C++。首先檢查是否在可以在其終端上顯示unicode的系統上(也就是說你在使用什麼)。在這種情況下,Windows並不好(有一種UTF-8的可能性,但是隻有當用戶改變他的字體等時纔有可能......) – deviantfan

回答

0

您需要使用std::wstring

#include <iostream> 
#include <string> 

int main() 
{ 
    std::wstring s(L"←→↑↓"); 
    std::wcout << s << "\n"; 
} 

注意,有L"←→↑↓""←→↑↓"之間的差異。後者是無效的,因爲以及當然不是都是有效的ASCII字符。

在我的機器上,這被打印爲<-->??,可能是因爲終端不支持字符。

+0

如果您的系統支持源和輸出都支持UTF-8,那麼非L版本的字符串可能會正常工作。 –

+0

@MarkRansom但L版應該無處不在,對吧? – stefan

+0

幾乎無處不在,看到我的答案。 –

3

假設Unicode環境根本不能與Windows控制檯一起工作,因爲它不使用Unicode。它使用代碼頁來確定可以顯示哪些字符以及字符代碼是什麼;在我的美國Windows 7系統上,這是Code page 437。您可以看到箭頭位於列表頂部,但不幸的是它們處於控制字符範圍內。這意味着它們完全脫離了正常輸出。您需要特殊的控制檯輸出功能來顯示它們。

編輯:看起來你不需要需要特殊的控制檯輸出,只有像'\x0a'幾個字符被剝離。以下字符串應該打印所有4個箭頭:"\x18\x19\x1a\x1b"

如果您使用Windows API而不是控制檯程序,請忽略此答案。

相關問題