2015-04-06 28 views
-1

如何使用擴展ASCII字符代替常規字符?在印刷陣列中使用擴展ASCII字符

我正在做一個pong遊戲,目前有|個字符組成槳,但是我想用ASCII 219(一個堅實的矩形)來彌補。這是我到目前爲止的代碼

char right_paddle_chars[] = { '|', 
            '|', 
            '|', 
            '|', 
            '|', 
            '|', 
            '|', }; 

    paddle_id = create_big_sprite(75, 10, 1, 7, right_paddle_chars); 
+0

你知道DOS的擴展ASCII字符只能在DOS下正確渲染嗎?不想使用正確的圖形庫?使用lncurses的 – smci 2015-04-06 11:34:53

+0

。 – 2015-04-06 11:51:16

+0

嘗試'#define SOLID_RECT(219)char right_paddle_chars [] = {SOLID_RECT,SOLID_RECT,...' – chux 2015-04-06 14:51:44

回答

2

「擴展ASCII」是meaningless term被頻繁使用。也許您指的是其中一個IBM代碼頁中的圖形,例如850(請參閱MSDN,其中顯示「代碼頁850 MS-DOS拉丁文1」)。但是,如果您使用的是ncurses,則可能在某些非DOS系統(如Unix,Linux或BSD)上使用它,而最新的系統使用UTF-8編碼。此外,Microsoft還記錄了Unicode的等價物(請參見MSDN)。 Codepage 850的0xdb映射到Unicode 0x2588

使用ncursesw(寬字符的味道),你可以有wchar_t(寬字符)牽着你選擇的Unicode值的數組,並打印作爲一個字符串使用addwstr

鑑於這些信息,您可以看到這個問題在這裏以不同的方式提出:Output 「█」 with ncursesw in C