91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 344KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-24
  • 語言: C/C++
  • 標簽:

資源簡介

點陣輸出漢字,用漢字字庫輸出放大的漢字,漢字字庫,c++

資源截圖

代碼片段和文件信息

//?HanZi.cpp?:?Defines?the?entry?point?for?the?console?application.
//

#include?“stdafx.h“
#include?“stdio.h“
#include?“stdlib.h“
#include?“conio.h“
#include?“string.h“

/*
??從鍵盤獲得漢字的編碼
??在中文windows下,默認編碼方式為GB2312?每個漢字由兩個字節組成。
??函數的目的是:把這個漢字的高字節寫入?pc1指向的位置,低字節寫入?pc2指向的位置
*/
int?get_han_zi(unsigned?char*?pc1?unsigned?char*?pc2)
{
char?buf[100];
printf(“\n請輸入一個漢字:“);
gets(buf);
if(strlen(buf)?!=?2)?return?-1;

*pc1?=?buf[0];
*pc2?=?buf[1];
if(*pc1? if(*pc2?
return?0;
}

/*
??從文件(字形文件HZK16)把字形裝入到一個32字節的緩沖區?buf?中。
??c1?是該漢字GB2312編碼的高字節,c2是低字節。

??每個bit代表1個像素點,16點陣的字模需要256個像素點信息,故需32字節
??字節的排列與16點陣像素的對應關系如下圖:
??
??第0字節?第1字節
??第2字節?第3字節
??.......
??第14字節?第15字節

??也就是說:每1行的16個點由2個字節提供。順序是:從上到下,從左到右。

??GB2312的編碼規則是:前一個字節表示區號,后一個表示區中的偏移序號。
??每個區有94個漢字。區號和序號的編碼都是從?0xA1開始(為了避免和西文沖突)
??因此,已知某個漢字的編碼,就可以計算出文件中所在的絕對位置。
*/
void?load_han_zi(unsigned?char*?buf?unsigned?char?c1?unsigned?char?c2)
{
int?n?=?(c1?-?0xa1)?*?94?+?(c2?-?0xa1);?//?計算在文件中的位置

FILE*?fp?=?fopen(“HZK16.DAT“?“rb“);
if(fp==NULL){
printf(“漢字庫打開錯!“);
exit(1);
}

fseek(fp?n?*?32L?SEEK_SET);

for(int?i=0;?i<32;?i++){
buf[i]?=?(unsigned?char)fgetc(fp);
}

fclose(fp);
}

/*
??顯示漢字
??buf:?從文件中讀出的漢字字模信息,32字節,說明同上
??italic:?=1,如果要求斜體,?=0?正常
??kx:?水平放大率
??ky:?垂直放大率
??fill:?用于填充的字符
*/
void?show_han_zi(unsigned?char*?buf?int?italic?int?kx?int?ky?char?fill)
{
printf(“\n?.....................請考生完成!\n“);
int?ikjlh;
unsigned?char?chtemp;
for(i=0;?i<16;?i++)//16行
for(h=0;?h {
if(italic)//斜體
for(k=0;?k<(15-i);?k++)
printf(“?“);
for(l=0;?l<2;?l++)//每行兩個字節
{
ch=buf[2*i+l];
for(j=0;?j<8;?j++)
{
temp=ch?&?0x80;???//temp的最高位等于ch的最高位其他位全為0
ch=ch<<1;???//ch左移一位
for(k=0;?k if(temp==0x80)???//如果temp的最高位為1輸出填充字符
printf(“%c“fill);
else
printf(“?“);
}
}
printf(“\n“);
}
}


/*
??與屏幕的輸出類似.
??只是寫入到一個名字為?a.txt?的文件中
*/
void?write_to_file(unsigned?char*?buf?int?italic?int?kx?int?ky?char?fill)
{
printf(“\n?考生也可完成之,不要求!\n?“);
FILE*?fp?=?fopen(“a.txt“?“w“);
if(fp==NULL){
printf(“文件打開出錯“);
exit(1);
}
int?ikjlh;
unsigned?char?chtemp;
for(i=0;?i<16;?i++)//16行
for(h=0;?h {
if(italic)//斜體
for(k=0;?k<(15-i);?k++)
fputc(‘?‘fp);
for(l=0;?l<2;?l++)//每行兩個字節
{
ch=buf[2*i+l];
for(j=0;?j<8;?j++)
{
temp=ch?&?0x80;???//temp的最高位等于ch的最高位其他位全為0
ch=ch<<1;???//ch左移一位
for(k=0;?k if(temp==0x80)???//如果temp的最高位為1輸出填充字符
fputc(fillfp);
else
fputc(‘?‘fp);
}
}
fputc(‘\n‘fp);
}
fclose(fp);
}

int?set_zoom_k(int*?pk)
{
printf(“請輸入放大率(1-4):“);
char?buf[100];
gets(buf);

int?n?=?atoi(buf);
if(n<1?||?n>4)?return?-1;

*pk?=?n;
return?0;
}

char?get_fill_char()
{

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4224??2010-04-26?23:33??點陣輸出漢字\a.txt

?????文件?????188486??2010-04-26?23:32??點陣輸出漢字\Debug\HanZi.exe

?????文件?????336076??2010-04-26?23:32??點陣輸出漢字\Debug\HanZi.ilk

?????文件??????14885??2010-04-26?23:32??點陣輸出漢字\Debug\HanZi.obj

?????文件?????228200??2010-04-24?23:43??點陣輸出漢字\Debug\HanZi.pch

?????文件?????492544??2010-04-26?23:32??點陣輸出漢字\Debug\HanZi.pdb

?????文件??????41984??2010-04-26?23:32??點陣輸出漢字\Debug\vc60.idb

?????文件??????53248??2010-04-26?23:32??點陣輸出漢字\Debug\vc60.pdb

?????文件???????5317??2010-04-26?23:32??點陣輸出漢字\HanZi.cpp

?????文件???????3389??2010-04-24?00:32??點陣輸出漢字\HanZi.dsp

?????文件????????518??2010-04-24?00:34??點陣輸出漢字\HanZi.dsw

?????文件??????58368??2010-04-26?23:34??點陣輸出漢字\HanZi.ncb

?????文件??????48640??2010-04-26?23:34??點陣輸出漢字\HanZi.opt

?????文件???????1173??2010-04-26?23:32??點陣輸出漢字\HanZi.plg

?????文件?????267616??1998-09-06?07:20??點陣輸出漢字\HZK16.DAT

?????文件???????1202??2010-04-12?15:55??點陣輸出漢字\ReadMe.txt

?????文件????????292??2010-04-12?15:55??點陣輸出漢字\StdAfx.cpp

?????文件????????667??2010-04-12?15:55??點陣輸出漢字\StdAfx.h

?????文件???????1115??2010-04-26?23:37??點陣輸出漢字\問題描述.txt

?????目錄??????????0??2010-04-26?23:35??點陣輸出漢字\Debug

?????目錄??????????0??2010-04-26?23:37??點陣輸出漢字

-----------?---------??----------?-----??----

??????????????1747944????????????????????21


評論

共有 條評論

相關資源