亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: Linux gcc 24*24點(diǎn)陣 [打印本頁]

作者: hongjiujing    時間: 2011-10-09 16:38
標(biāo)題: Linux gcc 24*24點(diǎn)陣
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

void getHzKCode(unsigned char *c, char buff[])
{
        unsigned char qh, wh;
        unsigned long offset;
        FILE *HZK;
/*打開字庫文件hzk24*/
        if ((HZK = fopen("HZKS_24*24.DZK", "rb")) == NULL) {
                printf("Can't open haz24,Please add it?");
                getchar();
                exit(0);
        }
        qh = *(c) - 0xa0;        /*10進(jìn)制的160等于16進(jìn)制的A0 */
        wh = *(c+1) - 0xa0;        /*獲得區(qū)碼與位碼 */

        offset = (94 * (qh - 1) + (wh - 1)) * 72L;        /*計算該漢字在字庫中偏移量 */
        fseek(HZK, offset, SEEK_SET);        /*將文件指針移動到偏移量的位置 */
        fread(buff, 72, 1, HZK);        /*從偏移量的位置讀取72個字節(jié) */
        printf("qh:%d,wh:%d,offset:%ld\n\r", qh, wh, offset);
}

void printHzKChar(char *mat, char *c1, char *c2)
{
        int i, j, k;
        for (i = 0; i < 24; i++) {        /*24*24點(diǎn)陣漢字,一共有24行 */
                for (j = 0; j < 3; j++)        /*橫向有3個字節(jié),循環(huán)判斷每個字節(jié)的 */
                        for (k = 0; k < 8; k++)        /*每個字節(jié)有8位,循環(huán)判斷每位是否為1 */
                                if (mat[i * 3 + j] & (0x80 >> k))        /*測試當(dāng)前位是否為1 */
                                        printf("%s", c1);        /*為1的顯示為字符c1 */
                                else
                                        printf("%s", c2);        /*為0的顯示為字符c2 */
                printf("\n");        /*輸完一行以后,進(jìn)行換行 */
        }
}

int main(int argc,char *argv)
{
        char *code;
/*漢字占兩個字節(jié),前景字符和背景字符都要有兩個英文字符或一個中文字符,否則字體將變形*/
        unsigned char *HzkC1 = "**";
       
        unsigned char *HzkC="王";
        unsigned char *HzkC2 = "  ";
        char buffer2[72];        /*存儲中文字模信息 */
        unsigned char *hzk;

        getHzKCode(HzkC, buffer2);
        hzk = buffer2;
        printHzKChar(hzk, HzkC1, HzkC2);
        return;
}

我的點(diǎn)陣是24*24,GBK2312的,獲取的區(qū)位碼不對。這個程序我想擴(kuò)展成將指定的漢字的點(diǎn)陣替換成我自定義的字符點(diǎn)陣,用于實驗需要。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2