#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<windows.h>
//判断是否为汉字
int isRightHanZi(unsigned char pc1,unsigned char pc2);
//判断汉字在HZK.16中的位置
void findHanZi(unsigned charbuf,unsigned char c1,unsigned c2);
//打印一行中文字符串
void showLongHanZi(unsigned buf,char fill1,char fill2);
//打印出汉字
void showHanZi(unsigned charbuf,int italic,int kx,int ky,char fill1,char fill2);
//写入文件
void writeToFile(unsigned charbuf,int italic,int kx,int ky,char fill1,char fill2);
void addressHanZi(unsigned char*buf);
int fangSuo(int *pk);//放大倍速或者缩小倍速
char getFillChar();//设置填充字符
void gotoxy(int x,int y); //多个汉字时移动光标位置
int main(int argc,char argv[]) {
system("title 点阵汉字测试");
unsigned char buffer[32];//存储16点阵汉字字模
int italic=0;//判断斜体
int kx=1;//水平放大率
int ky=1;//垂直放大率
char fill1='';//默认填充字符
char fill2=' '; //默认背景字符
for(;;) {
printf("%*s\n",60,"1.请输入一个汉字\n");
printf("%*s\n",60,"2.设置水平放大\n");
printf("%*s\n",60,"3.设置垂直放大\n");
printf("请选择相应的数字:\n");
char c=(char)getch();
switch(c) {
case'1': {
unsigned char pc1;
unsigned char pc2;
printf("1\n");
if(!isRightHanZi(&pc1,&pc2))
printf("\n输入错误\n");
else {
//得到汉字地址,并存放到 buffer[32]中
findHanZi(buffer,pc1,pc2);
showHanZi(buffer,italic,kx,ky,fill1,fill2);
}
}
break;
case'2':
printf("2\n");
if(!fangSuo(&kx))
printf("\n输入无效\n");
else
showHanZi(buffer,italic,kx,ky,fill1,fill2);
break;
case'3':
printf("3\n");
if(!fangSuo(&ky))
printf("\n输入无效\n");
else
showHanZi(buffer,italic,kx,ky,fill1,fill2);
break;
default:
printf("\n你的选择无效!\n");
}
}
return 0;
}
检查printf、scanf是否拼写错误,同时也逐一注释一些程序,依旧运行出错
请用代码块上传代码,不然很多代码都会被识别成markdown语法
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<windows.h>
//判断是否为汉字
int isRightHanZi(unsigned char *pc1,unsigned char *pc2);
//判断汉字在HZK.16中的位置
void findHanZi(unsigned char*buf,unsigned char c1,unsigned c2);
//打印一行中文字符串
void showLongHanZi(unsigned *buf,char fill1,char fill2);
//打印出汉字
void showHanZi(unsigned char*buf,int italic,int kx,int ky,char fill1,char fill2);
//写入文件
void writeToFile(unsigned char*buf,int italic,int kx,int ky,char fill1,char fill2);
void addressHanZi(unsigned char*buf);
int fangSuo(int *pk);//放大倍速或者缩小倍速
char getFillChar();//设置填充字符
void gotoxy(int x,int y); //多个汉字时移动光标位置
int main(int argc,char *argv[]) {
system("title 点阵汉字测试");
unsigned char buffer[32];//存储16点阵汉字字模
int italic=0;//判断斜体
int kx=1;//水平放大率
int ky=1;//垂直放大率
char fill1='*';//默认填充字符
char fill2=' '; //默认背景字符
for(;;) {
printf("%*s\n",60,"1.请输入一个汉字\n");
printf("%*s\n",60,"2.设置水平放大\n");
printf("%*s\n",60,"3.设置垂直放大\n");
printf("请选择相应的数字:\n");
char c=(char)getch();
switch(c) {
case'1': {
unsigned char pc1;
unsigned char pc2;
printf("1\n");
if(!isRightHanZi(&pc1,&pc2))
printf("\n输入错误\n");
else {
//得到汉字地址,并存放到 buffer[32]中
findHanZi(buffer,pc1,pc2);
showHanZi(buffer,italic,kx,ky,fill1,fill2);
}
}
break;
case'2':
printf("2\n");
if(!fangSuo(&kx))
printf("\n输入无效\n");
else
showHanZi(buffer,italic,kx,ky,fill1,fill2);
break;
case'3':
printf("3\n");
if(!fangSuo(&ky))
printf("\n输入无效\n");
else
showHanZi(buffer,italic,kx,ky,fill1,fill2);
break;
default:
printf("\n你的选择无效!\n");
}
}
return 0;
}