完整项目源代码在这里:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes, 参考计算机组成课程部分
这是老师布置的一个奇怪的作业:
利用十六点阵汉字库hzk16,编写图形模式下汉字显示程序。要求在普通显示之外,增加多种显示方式,如:文件显示、放大、斜体、倒立、彩色、空心、中英文混搭显示、动态显示等。
大概就是在命令行里面点阵显示汉字?
最后做出来的结果大概是这样的
这里使用了graphics.h 图形库;
源代码:source.cpp;
ConsoleApplication1为完整工程文件;
(运行环境:win10/vs2019)
支持文件显示、放大、斜体、倒立、彩色、动态显示等功能:
代码本身比较简单:
#include "graphics.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <time.h>
FILE* fphzk = NULL; //hzk16字库文件指针
int startX = 0, startY = 0; //文字显示开始位置
const unsigned char* testString = (const unsigned char*)"这是用来测试的一句话。";
//在特定坐标显示单个字符;
// 其中style = 0 为正体,style = 1为斜体, style = 2为倒立;
void ShowCh(int x, int y, unsigned char* zm, int color, int size, int style);
// 加载hzk16字库文件
int loadhzk16();
//从字库中获取一个字的点阵显示模式
void getWord(unsigned char* buffer, unsigned const char* word);
// 输出一个句子,其中style = 0 为正体,style = 1为斜体;
// size为大小;
void showString(int x, int y, const unsigned char* str, int wordCout, int color, int style , int size);
// 重载版本
void showString(int x, int y, const unsigned char* str, int wordCout, int color);
//从文件中加载并显示字符
void showFileText(int x, int y, const char* filename, int color);
int main()
{
if (!loadhzk16()) {
printf("Can't load the hzk16!\n")