标题:怎么从图形库输出stdin流里面的汉字内容~
取消只看楼主
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
结帖率:99.25%
已结贴  问题点数:20 回复次数:8 
怎么从图形库输出stdin流里面的汉字内容~
这段代码能实现从图形库里面输出英文的~不过这样只能一个字节一个字节处理~那么怎么能从图形库输出汉字?~有没有高手可以实现以下?~
问题是图形库似乎不能直接调用编译器默认的字库~
程序代码:
#include<graphics.h>
#include<stdio.h>
#include <conio.h>

void main()
{
    // 绘图环境初始化
    char s[10]={0};
    int i=0;
    int j=0;
    int flag=0;

    initgraph(640, 480);

    settextstyle(16, 0, _T("宋体"));


    {
        RECT r = {i*8, j*18, 640, 480};
        drawtext(_T("_"), &r,DT_EDITCONTROL| DT_LEFT|DT_INTERNAL|DT_NOPREFIX);
    }

    while (1)
    {
        flag=0;

        s[0]=getch();

        s[1]='_';

        if (s[0]==27)
            break;
        else if (s[0]=='\r')
        {
            RECT r1 = {0, (j+1)*18, 640, 480};
            RECT r2={i*8, j*18, 640, 480};

            drawtext(_T("_"), &r1,DT_EDITCONTROL| DT_LEFT|DT_INTERNAL|DT_NOPREFIX);
            drawtext(_T(" "), &r2,DT_EDITCONTROL| DT_LEFT|DT_INTERNAL|DT_NOPREFIX);


            i=0;
            j++;

            continue;
        }
        else if (s[0]==8&&i>0)
        {
            s[0]='_';
            s[1]=' ';
            --i;
            flag=1;


        }
        else if (s[0]==8)
            continue;

        if (!kbhit()||flag==1)
        {
            RECT r = {i*8, j*18, 640, 480};
            drawtext(_T(s), &r,DT_EDITCONTROL| DT_LEFT|DT_INTERNAL|DT_NOPREFIX);
            ++i;
        }

        if (flag==1&&i>0)
            --i;
    }

    // 按任意键退出
//    getch();
    closegraph();
}


[此贴子已经被作者于2017-6-21 00:19编辑过]

搜索更多相关主题的帖子: 英文 汉字 编译器 
2017-06-20 23:34
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
当然折中一点可以用InputBox函数~用来实现项目那个框框看上去局限性很大吧~如果这样直接在控制台里面弄会不会好一点?~

[此贴子已经被作者于2017-6-20 23:49编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-20 23:37
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
如果是这样好像要自己放在InputBox函数自己弄个适合程序的框架才行~

看来如果真的要弄用Windows编程比较合理~看来这短期是实现不了了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-20 23:48
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
发现一个根本性的问题~图形库竟然直接用非编译器的输入法而不是编译器本来自带的字库~这性质决定了和控制台处理方式有很大的不同~

什么~这个问题已经在一楼说过一次啦~

[此贴子已经被作者于2017-6-21 09:43编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-21 09:38
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 4楼 九转星河
能用字典树自己建立一个字库么~这样直接把索引结果显示在屏幕上解决输入中文问题?~设想一下就行了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-21 12:32
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 5楼 九转星河
或许~建立字库把字库保存在数据库里面比较合适一点~不过表示对数据库了解不多~不知道呢~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-21 12:41
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 7楼 xzlxzlxzl
看来x版没有玩过图形库~~~那里根本不能直接接收外部输入的汉字那里显示是直接用搜狗输入的~除非能通过某种方式来间接调用控制台程序(如果我没有猜错应该要切换窗口句柄涉及到那些底层的东西)~

如果用windows控制台这个我自己弄弄也可以~看来图形库不适合处理用户输入文字信息~

当然这样简单处理可以(主要是没有窗口界面~如果有窗口界面比较复杂)~
这可以当作一种简便的处理方法吧~

PS:现在先不管输入中文的问题了~那个打算暂时跳过~当然不用图形库直接用控制台可以用x版的实现~

[此贴子已经被作者于2017-6-21 16:07编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-21 16:02
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
解决方案想到了如下几个~

1:想办法让图形库支持获取输入中文信息(也就是说能接受中文信息)~
2:自己建立一个字库自己进行输入信息管理(虽然有实现可能~不过感觉比较麻烦)~
3:获取文档格式输入模块~然后自定义在指定区域进行文档编辑(不带显示提示信息窗口单纯提供输入模块)自己管理输入内容(现阶段表示不会)~
4:不用图形库直接调用控制台解决(像x版那样~不过就意味着不用图形库了)~
5:最直接用图形库的InputBox函数解决(不过那样多了个外部输入信息提示框~局限性比较大~有种那不是图形库的一个部分而是另外独立出来的感觉)~
总结一下如果真的要深入解决问题还是要了解一下windows编程才行~


[此贴子已经被作者于2017-6-21 16:38编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-21 16:23
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 10楼 xzlxzlxzl
十分感谢x版的答疑~这可以完满解决我的问题啦~~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-21 18:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-478801-1-1.html




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

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