| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1910 人关注过本帖
标题:c语言字库编程问题
只看楼主 加入收藏
ywysh1018
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-3
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:7 
c语言字库编程问题
现在是可以一次输入一个汉字,谁给改成一次可以输入n个汉字啊,n不确定,主要是怎么才知道输入了多少汉字啊?求指教
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int one_word(char);
   
    unsigned char code[3];   
    printf("请输入汉字:\n");
    scanf("%s",&code);   
    one_word(code);
}

int one_word(word)//一次显示一个汉字
unsigned char word[3];
{
    FILE* fphzk = NULL;
    int i, j, k, offset;
    int flag;
    unsigned char qh,wh;
    unsigned char buffer[32];
    unsigned char key[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//位屏蔽字

   
    if((fphzk = fopen("hzk16", "rb")) == NULL)   
    {   
        printf("Can't Open hzk16\n");   
        exit(0);   
    }
    qh = word[0] - 0xa0;   //获得区码            
    wh = word[1] - 0xa0;   //获得位码               
    offset = (94 * (qh - 1) + (wh - 1)) * 32;      //得到偏移位置
    fseek(fphzk, offset, SEEK_SET);
    fread(buffer, 1, 32, fphzk);
   
    for(k=0; k<16; k++)
    {
        for(j=0; j<2; j++)
        {
            for(i=0; i<8; i++)
            {
                if(flag = buffer[k*2+j]&key[i])
                {
                    printf("%s", "●");
                }
                else
                {
                    printf("%s", "○");   
                }
            }
        }
        printf("\n");
    }
    fclose(fphzk);
    return 0;
}
搜索更多相关主题的帖子: word include 汉字 
2012-12-03 15:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
汉字文本就是普通的字符数组呀

授人以渔,不授人以鱼。
2012-12-03 16:01
ywysh1018
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-3
收藏
得分:0 
回复 2楼 TonyDeng
但是修该以后调用还是只显示一个字的字库
2012-12-03 16:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你要逐个汉字传给显示函数分开显示,用循环才行呀。

授人以渔,不授人以鱼。
2012-12-03 16:47
ywysh1018
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-3
收藏
得分:0 
回复 4楼 TonyDeng
把主函数改成下面的了,但是不能显示字库了,求解
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void main()
{
    int one_word(char);
    int i;
    int m = 1;//输入的汉字个数
    unsigned char code[20][3];
    printf("请输入汉字:\n");
    scanf("%s",&code);
    printf("\n显示内容:\n");
    printf("%s\n",code);
    m = strlen(code);
    printf("一共有%d个汉字。\n\n",m / 2);  
   
    for(i = 1; i < m; i ++)      
    {
        one_word(code[i][3]);
    }
}
2012-12-03 17:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你输入的汉字串是什么东西?怎么会是二维数组呢,二维数组也不是这样接受数据的。汉字字符串就是普通的一维char数组,用原来的方式输入就是了,但是每两个char为一个汉字,你每显示一个汉字,一次要传两个char给那个函数,而且那个函数也不需要这样的形参。

授人以渔,不授人以鱼。
2012-12-03 17:08
ywysh1018
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-3
收藏
得分:0 
回复 6楼 TonyDeng
那应该怎么改啊哥们,帮帮忙吧,兄弟真的头大了
2012-12-03 17:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
scanf()一个普通的字符串,要求全部是汉字,然后两个两个地传给下面的那个函数。修改一下函数的参数形式,不需要这样char[3]的,char[2]就够了,不需要'\0'符号。我要给你全改了,等于重新写一个,对你没好处,何况类似的东西代码我发过多次,不重复。

授人以渔,不授人以鱼。
2012-12-03 17:35
快速回复:c语言字库编程问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017685 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved