shell编程/字库裁剪(3)——验证
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖。如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/7712496.html 作者:窗户 QQ:6679072 E-mail:6679072@qq.com
程序写完了,必须要验证,这是重要的方法论。因为如果不验证,则不会知道程序写的对还是不对。学过人工智能或者控制论都知道,反馈非常重要,反馈形成闭环,可以用来指导、调节你的输出。而对于编程这个活动来说,验证也一样是产出的反馈,形成闭环,过程中测出的所有BUG都会反馈过来,产生调整代码的输出。
一句话,闭环靠谱,开路不靠谱。
我们生成了生成字库的程序之后,按理也应该验证。C语言的程序,没有main函数,自然也需要另外一个C语言带main函数的调用来验证了。我们这里就把选取使用字的文本根据给出的裁剪字库打印出来即可。用终端模拟一样可以有挺好的效果,没必要控制显示器。
我们写的C语言文件如下,给出了汉字(16X16)的打印,以及ASCII字符(16X8)的打印。
#include <stdio.h> /* http://www.cnblogs.com/Colin-Cai */ //打印汉字
void print_chinese(const unsigned char *buf)
{
int i,j,k;
unsigned char c; for(i=;i<;i++) {
for(j=;j<;j++) {
for(k=;k>=;k--) {
c = (unsigned char)0X1 << k;
if(*buf & c)
printf("*");
else
printf(" ");
}
buf++;
}
printf("\n");
} printf("\n\n\n");
} //打印ASCII字符
void print_ascii(const unsigned char *buf)
{
int i,j,k;
unsigned char c; for(i=;i<;i++) {
for(j=;j<;j++) {
for(k=;k>=;k--) {
c = (unsigned char)0X1 << k;
if(*buf & c)
printf("*");
else
printf(" ");
}
buf++;
}
printf("\n");
} printf("\n\n\n");
} /* 裁剪中提供的两个查找函数 */
const unsigned char *find_ascii_font(unsigned char c);
const unsigned char *find_chinese_font(unsigned char GBH, unsigned char GBL);
int main(int argc, char*argv)
{
unsigned char c, c2;
const unsigned char* p;
while() {
if(fread(&c, , , stdin)!=)
return ;
if(c<0X80) { /* 就以此判断是ASCII字符了 */
p = find_ascii_font(c);
if(p != NULL) {
print_ascii(p);
}
continue;
}
if(fread(&c2, , , stdin)!=)
return ;
/* 打印汉字 */
p = find_chinese_font(c,c2);
if(p != NULL) {
print_chinese(p);
}
}
return ;
}
测试一下效果

shell编程/字库裁剪(3)——验证的更多相关文章
- shell编程/字库裁剪(2)——编程过程
		
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/7704085.html 作者:窗户 Q ...
 - shell编程/字库裁剪(1)
		
我写这个帖子的意图,在于三个: 1.用代码生成代码的思维. 2.shell编程的思路. 3.裁剪字库的具体程序. 我打算分为三节来说: 第一节讲裁剪裁剪词库的意义以及使用场合: 第二节讲如何用shel ...
 - shell编程/字库裁剪(1)——想法
		
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/7679024.html 作者:窗户 Q ...
 - Linux Shell编程基础
		
在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls 显示当前路径下的文件,常用的有 -l 显示长格式 -a 显示所有包括隐 ...
 - shell编程基础(5)---循环指令
		
while类型的循环 while类型的循环是不定循环的一种,每一次循环都会验证给出的循环条件,判断是否要进行下一次循环.linux中while循环的写法和c语言中很想,但是条件给出的方式有些区别. 首 ...
 - Shell - 简明Shell编程
		
本文是对Shell脚本编程的总结和回顾,所有涉及的脚本均已做了基本的调试和验证. [toc] 测试环境信息 [root@CentOS7 ~]# uname -a Linux CentOS7 3.10. ...
 - Linux(二十一)Shell编程
		
21.1 为什么要学习Shell编程 (1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理. (2)对于JavaEE和Python程序员来说,工作的需要,你的老大会 ...
 - shell编程基础(二): shell脚本语法之分支语句和循环语句
		
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
 - SHELL编程综合练习
		
SHELL编程综合练习1 一. 实验准备(预防抄袭,此步必做) 请将命令提示符设为你的学号:输入PS1=你的学号_,即学号之后跟下划线,例如PS1=110015_, 回车执行 如发现命令提示符和你的学 ...
 
随机推荐
- 201521123063 《Java程序设计》 第4周学习总结
			
1.本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 类设计 一般在设计类的时候,要考虑这些类是否有共性,还要考虑其独特性,使共同的父类拥有这些共性 ...
 - 201521123026  《java程序设计》 第九周学习总结
			
1. 本章学习总结 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) PTA提交结果: 运行结果截图: 1.2 ...
 - 《Java课程设计》
			
一. 本组课题 简易文件资源管理器 需求分析 查找文件功能:可以根据指定的目录名与待查找的文件,在指定目录中进行查找,并返回结果 实现文件的拷贝与粘贴功能 实现文本类文件(.txt, .java, . ...
 - Eclipse rap 富客户端开发总结(1) :rap简单介绍和开发环境搭建
			
一.rap简单介绍 1 基本概念 RAP可以让开发人员使用JAVA API和按照Eclipse 插件的开发模式构建基于AJAX的Web 2.0应用程序, RAP的工作原理是采用交叉编译的方式将 ...
 - mysql查询文章的评论数量
			
作为小白的我,这个问题弄了半天才解决,特此记录下. 两张表:文章表和评论表 文章表(article):id 评论表(comment):id,c_aid 要求:查询出所有文章及评论数量然后降序显示(没有 ...
 - 06jQuery-01-基本选择器
			
1.jQuery概要 JavaScript的一个库,只是一个jquery-xxx.js的文件,它可以让你写更少的代码,做更多的事. $是著名的jQuery符号.实际上,jQuery把所有功能全部封装在 ...
 - 短视频图像处理 OpenGL ES 实践
			
2017年,短视频正以其丰富的内容表现力和时间碎片化的特点,快速崛起,而短视频最具可玩性之处就在支持人脸识别的动态贴图和各种不同效果的美颜.滤镜等.那短视频动态贴纸.滤镜.美颜等功能究竟是如何实现的呢 ...
 - web自动化1-selenium简介及环境搭建
			
selenium 开源软件 支持多浏览器Firefox.Chrome.IE 跨平台Windows.Mac.Linux 多语言 java python Ruby php js 对web支持好,多种API ...
 - FoxOne---一个快速高效的BS框架--数据访问(Dao)
			
FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...
 - 翻译 | 玩转 React 表单 —— 受控组件详解
			
原文地址:React.js Forms: Controlled Components 原文作者:Loren Stewart 译者:小 B0Y 校对者:珂珂君 本文涵盖以下受控组件: 文本输入框 数字输 ...