请问怎么在C语言中输入汉字?
时间:2008-05-10 10:58:55
来源:论坛整理 作者: 编辑:chinaitzhe
main()
{
printf( "c语言世界www.vcok.com,您好!\n ");
}
但C中本身是不能输入汉字的.听说要下一个相关的模块.但我不知是什么样的模块,所以在网上找了但没找到,不知哪位高手知道关于这个模块.没有这个模块也没关系,只要告诉我是什么样的模块我自己在网上找就行,麻烦大家了.
网友回复:可以的,呵呵^_^,okokok
网友回复:用的TC???估计得搞个字库。。
网友回复:tc 不记得了 ,vc 是没问题的
网友回复:PDOS95
网友回复:UCdos
网友回复:顶LS的, UCDOS 怀念....
网友回复:UCDOS
网友回复:可以!要一个汉字库,网上有的下!我有例子,你要的话,发给你看一下 !(TC 2.0可以用)
网友回复:干吗要怀旧呢
有好的就用好的吧
呵呵
网友回复:跟C语言没关系,别用TC就得了。
网友回复:/**************************建立小型汉字库*************************/
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
FILE *fp1,*fp2,*fp3,*fp4;
char *hz,str[81];
char buffer[3];
int hz_locate,hz_num;
int bit,zone;
long hs;
void main()
{
fp1=fopen( "hzk16.txt ", "rb ");/*打开汉字库hzk16.txt(网上下载)文件*/
if(fp1==NULL)
{
printf( "can not open HZK16.txt file! ");
exit(1);
}
fp2=fopen( "xzk16.txt ", "r ");
if(fp2==NULL)
{
printf( "can not open XHZK16.txt file! ");/*把程序中用到的汉字事先写入文件XHZK16.txt中*/
exit(1);
}
fp3=fopen( "xzk16.dat ", "wb "); /*小型汉字库xzk16.dat*/
if(fp3==NULL)
{
printf( "can not open HZK16.dat file! ");
exit(1);
}
fp4=fopen( "xzk16.h ", "w "); /*生成xzk16.h供程序调用*/
if(fp3==NULL)
{
printf( "can not open XHZK16.H file! ");
exit(1);
}
printf( "making xzk\n ");
printf( "Please waiting........ ");
fputs( "int hz16_choise(int hz_code){\n ",fp4);
fputs( "int hz_locate;\n ",fp4);
fputs( "switch(hz_code){\n ",fp4);
hz_num=0;
while(fgets(str,81,fp2)!=NULL)
{
hz=str;
while(*hz)
{
if(*hz== '\n ') break;
zone=(*hz -0xa1)&0x7f;
bit=(*hz -0xa1)&0x7f;
hz_locate=(zone)*94 bit;
fprintf(fp4, "case M:hz_locate=%d; ",hz_locate,hz_num);
hz_num =1;
fputs( "break;\n ",fp4);
hs=hz_locate*32L;
fseek(fp1,hs,SEEK_SET);
fread(buffer,32,1,fp1);
fwrite(buffer,32,1,fp3);
}
}
fputs( "default:printf(\ "HZ Code %d Not Found in xhzk16\\n\ ",hz_code);\n ",fp4);
fputs( "}\n ",fp4);
fputs( "return(hz_locate);\n ",fp4);
fputs( "}\n ",fp4);
printf( "small hzk have made! ");
fclose(fp1);
fclose(fp2);
fclose(fp3);
fclose(fp4);
}
xzk16.txt(测试的汉字,不能重复)
文件排序插入删
除统计查找更新
作者学号姓名年
龄性别课程成绩
老师下一生男女
不对第快速堆人
数平均各科每总
存盘读取帮助版
本联系印其他个
南京航空天大
归并退出选择顶
能打开内足错误
满了要没有此在
已位置的为负时结束
输信息否则请
周明
校欢迎使用治理
非常简单和
差多问题指导叶延风
网友回复:生成xzk16.h供程序调用
int hz16_choise(int hz_code){
int hz_locate;
switch(hz_code){
case 4265:hz_locate=0;break;
case 2631:hz_locate=1;break;
case 3420:hz_locate=2;break;
case 4499:hz_locate=3;break;
case 1666:hz_locate=4;break;
case 3740:hz_locate=5;break;
case 3789:hz_locate=6;break;
case 1784:hz_locate=7;break;
case 4154:hz_locate=8;break;
case 2575:hz_locate=9;break;
case 1670:hz_locate=10;break;
case 4937:hz_locate=11;break;
case 2253:hz_locate=12;break;
case 4451:hz_locate=13;break;
case 5162:hz_locate=14;break;
case 4950:hz_locate=15;break;
case 4518:hz_locate=16;break;
case 2386:hz_locate=17;break;
case 4470:hz_locate=18;break;
case 3286:hz_locate=19;break;
case 3363:hz_locate=20;break;
case 3075:hz_locate=21;break;
case 4469:hz_locate=22;break;
case 1583:hz_locate=23;break;
case 2865:hz_locate=24;break;
case 1735:hz_locate=25;break;
case 1732:hz_locate=26;break;
case 2545:hz_locate=27;break;
case 2960:hz_locate=28;break;
case 3859:hz_locate=29;break;
case 4357:hz_locate=30;break;
case 4632:hz_locate=31;break;
case 3849:hz_locate=32;break;
case 3337:hz_locate=33;break;
case 3397:hz_locate=34;break;
case 1624:hz_locate=35;break;
case 2025:hz_locate=36;break;
case 1937:hz_locate=37;break;
case 2895:hz_locate=38;break;
case 4004:hz_locate=39;break;
case 2022:hz_locate=40;break;
case 3708:hz_locate=41;break;
case 3946:hz_locate=42;break;
case 3506:hz_locate=43;break;
case 2814:hz_locate=44;break;
case 2248:hz_locate=45;break;
case 2857:hz_locate=46;break;
case 3226:hz_locate=47;break;
case 5135:hz_locate=48;break;
case 1855:hz_locate=49;break;
case 3427:hz_locate=50;break;
case 2006:hz_locate=51;break;
case 3666:hz_locate=52;break;
case 1488:hz_locate=53;break;
case 5071:hz_locate=54;break;
case 1479:hz_locate=55;break;
case 1533:hz_locate=56;break;
case 3017:hz_locate=57;break;
case 4344:hz_locate=58;break;
case 4700:hz_locate=59;break;
case 3545:hz_locate=60;break;
case 4038:hz_locate=61;break;
case 2247:hz_locate=62;break;
case 3336:hz_locate=63;break;
case 2734:hz_locate=64;break;
case 2378:hz_locate=65;break;
case 2872:hz_locate=66;break;
case 4117:hz_locate=67;break;
case 1868:hz_locate=68;break;
case 2328:hz_locate=69;break;
case 1599:hz_locate=70;break;
case 4178:hz_locate=71;break;
case 1777:hz_locate=72;break;
case 4512:hz_locate=73;break;
case 4874:hz_locate=74;break;
case 1978:hz_locate=75;break;
case 3349:hz_locate=76;break;
case 1867:hz_locate=77;break;
case 2829:hz_locate=78;break;
case 3347:hz_locate=79;break;
case 5142:hz_locate=80;break;
case 1862:hz_locate=81;break;
case 4312:hz_locate=82;break;
case 3191:hz_locate=83;break;
case 3050:hz_locate=84;break;
case 4615:hz_locate=85;break;
case 3222:hz_locate=86;break;
case 4747:hz_locate=87;break;
case 1828:hz_locate=88;break;
case 4851:hz_locate=89;break;
case 4654:hz_locate=90;break;
case 4256:hz_locate=91;break;
case 5016:hz_locate=92;break;
case 1915:hz_locate=93;break;
case 4239:hz_locate=94;break;
case 2187:hz_locate=95;break;
case 3870:hz_locate=96;break;
case 2696:hz_locate=97;break;
case 3941:hz_locate=98;break;
case 3921:hz_locate=99;break;
case 4454:hz_locate=100;break;
case 4325:hz_locate=101;break;
case 2148:hz_locate=102;break;
case 4875:hz_locate=103;break;
case 3646:hz_locate=104;break;
case 5041:hz_locate=105;break;
case 3282:hz_locate=106;break;
case 4420:hz_locate=107;break;
case 2465:hz_locate=108;break;
case 4712:hz_locate=109;break;
case 3878:hz_locate=110;break;
case 4734:hz_locate=111;break;
case 2315:hz_locate=112;break;
case 2990:hz_locate=113;break;
case 2106:hz_locate=114;break;
case 1694:hz_locate=115;break;
case 2619:hz_locate=116;break;
case 1884:hz_locate=117;break;
case 2394:hz_locate=118;break;
case 1675:hz_locate=119;break;
case 2037:hz_locate=120;break;
case 4271:hz_locate=121;break;
case 4107:hz_locate=122;break;
case 5005:hz_locate=123;break;
case 1907:hz_locate=124;break;
case 4627:hz_locate=125;break;
case 4562:hz_locate=126;break;
case 2138:hz_locate=127;break;
default:printf( "HZ Code %d Not Found in xhzk16\n ",hz_code);
}
return(hz_locate);
}
网友回复:显示汉字的程序
#include <graphics.h> /*图形库函数*/
#include <stdio.h>
#include <dos.h> /*DOS调用库函数*/
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <fcntl.h> /*汉字有关的函数*/
#include <io.h>
#include "XZK16.h " /*使用汉字*/
#define ROW 1 /*汉字的显示大小*/
#define COL 1
void Begin() /*初始化显示器*/
{
int gdriver,gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(&gdriver,&gmode, "C:\\TC200 ");/*修给TC目录*/
cleardevice();
}
void displayhz(int x,int y,char *s,int color) /*显示汉字*/
{
int hz_locate;
FILE *fp;
char buffer[32];
int m,n,i,j,k;
unsigned char qh,wh;
unsigned long offset;
if((fp=fopen( "xzk16.dat ", "rb "))==NULL)/*建立小型汉字库时生成的*/
{
printf( "Can not open xzk16.dat,Please add it ");
return;
}
while(*s)
{
qh=*(s)-0xa0;
wh=*(s 1)-0xa0;
offset=(94*(qh-1) (wh-1));
hz_locate=hz16_choise(offset);
fseek(fp,hz_locate*32L,SEEK_SET);
fread(buffer,32,1,fp);
for (i=0;i <16;i )
for(n=0;n <ROW;n )
for(j=0;j <2;j )
for(k=0;k <8;k )
for(m=0;m <COL;m )
if (((buffer[i*2 j]> > (7-k))&0x1)!=NULL)
putpixel(x 8*j*COL k*COL m,y i*ROW n,color);
s =2;
x =30;
}
fclose(fp);
}
void zuozhe() /*作者信息*/
{
displayhz(200,100, "作者 ",WHITE);
displayhz(300,100, "周明明 ",14);
displayhz(200,200, "学校 ",WHITE);
displayhz(300,200, "南京航空航天大学 ",14);
displayhz(200,300, "指导老师 ",WHITE);
displayhz(350,300, "叶延风 ",14);
}
void lszuozhe() /*联系作者*/
{
setcolor(14);
displayhz(200,100, "有问题请和作者联系 ",14);
outtextxy(80,150, "E m a i l : z h o u m m 1 0 4 2 9 @ 1 2 6 . c o m ");
outtextxy(80,200, "Q Q : 3 9 4 2 6 3 9 4 5 ");
}
void main()
{
Begin();
zuozhe();
getch();
}
网友回复:UCDOS怎么用呀,我下了一个,但不知怎么用?有哪位大侠知道?
关键字:请问,语言,输入,汉字,
上一篇:c 中的一个小问题
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面