`

c++控制台输出一个汉字的星阵

阅读更多
/////////////////////////////////////////////////////////////////
//首先下载字库,ftp://211.69.16.66/ucdos.exe,解压有个hzk16文件//
/////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <stdlib.h>
FILE *pfile;
unsigned char hanzi[32]; /* 16*16点阵 */
void read_hz(unsigned char hz[2]);
void draw_hz();

int main()
{
    unsigned char str[] = "我的汉字库";
    unsigned char *p = str;
    printf("%s\n",str);

    if(pfile=fopen("hzk16","rb")) /* ucdos的字库文件 */
    {
        while(p<str+strlen(str))
        {
            if(*p>127) /* 汉字 */
            {
                read_hz(p);
                draw_hz();
                p+=2;
            }
            else /* ASCII */
            {
                ++p; /* 忽略ASCII字符 */
            }
        }
        fclose(pfile);
    }
    else
    {
        printf("Can't Open hzk16\n");
    }
    return 0;
}
void read_hz(unsigned char hz[2])
{
    int  qu = hz[0]-0xA0; /* 区码 */
    int wei = hz[1]-0xA0; /* 位码 */
    int offset = (94*(qu-1)+(wei-1))*32;
    fseek(pfile,offset,SEEK_SET);
    fread(hanzi,32,1,pfile);
}
void draw_hz()
{
    int i,j;
    for(i=0;i<16;++i)
    {
        for(j=0x80;j;j>>=1)
        {
            printf("%c ",(j&hanzi[2*i])?'#':' ');
        }
        for(j=0x80;j;j>>=1)
        {
            printf("%c ",(j&hanzi[2*i+1])?'#':' ');
        }
        printf("\n");
    }
    printf("\n\n\n");
}
分享到:
评论

相关推荐

    使VC的Console程序控制台输出中文的'按任意键继续'

    使Visual c++的Console程序控制台输出中文的'按任意键继续'

    C++标准库之中文输出详细介绍

    使用C++标准库的iostream,可以方便地将控制台、文件、字符串以及其它可扩充的外部表示作为流来处理,但要处理中文,却会碰到很多问题。本人原来没怎么用过这个iostream,这几天尝试用这个写点东西,一会儿不能输出...

    Absolute C++中文版(原书第2版)-完美的C++教程,文档中还包含英文版

    1.3 控制台输入/输出 19 1.3.1 使用cout输出 19 1.3.2 输出时换行 20 1.3.3 格式化带小数点的数字 21 1.3.4 用cerr输出 22 1.3.5 用cin输入 22 1.4 程序的风格 23 1.5 库与命名空间 24 1.5.1 库与include...

    EDA/PLD中的C++标准库之中文输出详细介绍

    使用C++标准库的iostream,可以方便地将控制台、文件、字符串以及其它可扩充的外部表示作为流来处理,但要处理中文,却会碰到很多问题。本人原来没怎么用过这个iostream,这几天尝试用这个写点东西,一会儿不能输出...

    内存管理作业C++ 提供两个版本:windows平台和linux平台下运行

    提供两个版本:windows平台和linux平台下运行 注意:linux版本使用GCC编译连接运行 1. cd到source code目录 2.1 使用compile_shell shell script编译连接:./compile_shell 2.2 使用Makefile文件 编译连接:make 3. ...

    国产编程语言R++ V1.5

    4.字符串常量统一使用utf8(如果需要在控制台输出中文请参考rpp.pdf修改控制台的编码) 5.完整的模板函数支持,模板函数不仅可以作为类的成员,还可以动态生成 6.可变参数支持 7.内部列表多改为红黑树,动态调用效率...

    中文分词学习版

    可根据用户需要自行添加汉语词组,并提单个汉字添加或从文件批量添加功能。 7.特殊字符过滤功能 可根据用户需要自行定义影响检索结果的不必要的字符。如:! % *等。 9. 具有英文分词识别功能。 本组件同时具有英文...

    Tinyxml 源代码(VC6 & VS2005)

    TinyXML使用文档对象模型(DOM),这意味着XML数据被解析成一个可被浏览和操作的C++对象,然后它可以被写到磁盘或者另一个输出流中。你也可以把C++对象构造成一个XML文档然后把它写到磁盘或者另一个输出流中。 ...

    计算机应用模型机研制技术

    5.2.4 控制台输出函数 5.2.5 控制台应用程序对文件的处理 5.2.6 控制台窗口函数 5.5.7 日期及时间函数 第六章 Winndows图形界面的32位汇编语言窗口程序编写技术 6.1 预备知识 6.2 Windows窗口应用主程序 6.3 使用...

    一个CPP实现的日志库

    log4cplusplus 基于 log4cplus 封装的自用的 C++ 日志库 - 线程安全 - 支持异步 - 支持中文路径和内容 - 支持输出到文件、控制台、调试器 - 支持格式化打印

    NiceBASICV 1.0中文编程正式版【MSI安装版】

    NiceBASIC中文编程语言,是采用类似BASIC语法,并兼有C++的一些高级特性(比如:指针(Pointer)操作运算、自动化类(Class)、重载函数(OverLoad)、重载操作符(OverLoad)等等)集于一身的全中文关键字的编程语言,简称...

    NiceBASIC V1.0中文编程正式版(绿色版).rar

    NiceBASIC中文编程语言,是采用类似BASIC语法,并兼有C++的一些高级特性(比如:指针(Pointer)操作运算、自动化类(Class)、重载函数(OverLoad)、重载操作符(OverLoad)等等)集于一身的全中文关键字的编程语言,简称...

    c#学习笔记.txt

    我是一个狮子座男人,一度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为中文是世界上...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    超级有影响力霸气的Java面试题大全文档

     SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。...

    java 面试题 总结

    然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中...

Global site tag (gtag.js) - Google Analytics