用C語言顯示漢字的演示程式

2021-06-11 01:18:26 字數 1417 閱讀 3238

漢字是方塊字,寬高相等的漢字型檔在嵌入式領域有著廣泛的應用,且其解析也相對來說是比較簡單的。

漢字在漢字型檔中的索引一般會遵循gb2312/gbk編碼規則,gb2312/gbk規定漢字編碼由2個位元組組成,其中低位元組區碼,高位元組為位碼。本文以最常見的ucdos中16x16的宋體字庫hzk16來演示漢字的顯示方法,hzk16中漢字的存放基於gb2312編碼的順序,每個漢字的點陣資料佔32個位元組,每個位元組表徵8個點的狀態,每行從左至右的點的狀態分別對應位元組從高到低的位值。

下面提供完整的演示程式以供參考,

#include #define font_size	(16)	/* 字型大小 */

/* 獲取漢字在漢字型檔中的索引位置

根據gb2312/gbk編碼規則,漢字的低位元組hz[0]是區碼,高位元組hz[1]是位碼,漢字型檔從區位碼0xa1a1開始存放漢字

*/#define hz_index(hz) ((hz[0] - 0xa1) * 94 + (hz[1] - 0xa1))

#define dots_bytes (font_size * font_size / 8) /* 漢字點陣資料所佔的位元組數 */

int main(int argc, char* argv)

fseek(hzk, hz_index(song) * dots_bytes, seek_set);

fread(dots, sizeof(unsigned char), dots_bytes, hzk);

fclose(hzk);

/* 用「*」號根據點陣資料顯示「宋」字 */

for(i = 0; i < font_size; i++)

}printf("\n"); }

return 0;

}

程式編譯執行後會出現如下的顯示效果,

*                   

*

* * * * * * * * * * * * * *

* *

* * *

*

* *

* * * * * * * * * * * * * * *

* * *

* * *

* * * *

* * * * *

* * *

* *

*

*

c語言實現單獨顯示漢字

include include include include include 單獨顯示漢字,顯示中文,在vs2008控制台程式中實現 int main setlocale lc all,chs wprintf l 原寬字串為 s n wtext for int i 0 iwprintf l n p...

C語言顯示USDOS漢字型檔

最近重新找了一下c語言的資料,深深的被c語言的底層操作特性迷戀 在這方面,最經典的一本書莫過於清華大學出版社的 c高階實用程式設計 王士元 在c語言高階應用領域裡這是我見過的寫的最好的一本書,非常可惜的這本書現在已經絕版了 可能是因為技術發展和更新的太快 在書店裡網上都無法買到了。記得本科時期經常借...

C語言 用C語言實現漢諾塔自動遞迴演示程式

1.變介面大小依照輸入遞迴數改變。2.漢諾塔自動移動演示。3.採用gotoxy實現流暢重新整理。4.保留文字顯示遞迴流程 部落格鏈結 輸入要遞迴的漢諾塔數目,在原來的漢諾塔基礎上新增move play函式展示遞迴,用next陣列儲存每種移動狀態。對應的從哪到哪可自動對應相應的移動方式自動移動。ini...