| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2236 人关注过本帖
标题:【求助】一个简单的Printf实现代码~
取消只看楼主 加入收藏
sxzjw
Rank: 2
等 级:论坛游民
帖 子:32
专家分:21
注 册:2010-5-23
结帖率:57.14%
收藏
已结贴  问题点数:20 回复次数:3 
【求助】一个简单的Printf实现代码~
实现一个简单的printf,只需要支持%c,%d,就可以了。用C语言。
小弟的c语言学的基本上忘记了。希望高手能解释下个别语句~
搜索更多相关主题的帖子: Printf 代码 
2010-05-23 21:28
sxzjw
Rank: 2
等 级:论坛游民
帖 子:32
专家分:21
注 册:2010-5-23
收藏
得分:0 
晕~二楼这个。。。能不能专业点儿
2010-05-24 12:41
sxzjw
Rank: 2
等 级:论坛游民
帖 子:32
专家分:21
注 册:2010-5-23
收藏
得分:0 
对你们真的很无语~
进过我认真的研究,自己编写出啦了~
放出代码,大家看看:

void myprintf(char* fmt, ...)
{
    char c;
    int n=6;
    int nch[100];
    int i=0;
    int cs;
    int s;
    int r;

    do
    {       c=*fmt;

        if (c != '%')
        {
        putch(c);
        }
        else
        {       switch(*++fmt)
            {
                case 'c':
                    putch(*(int *)(_BP+n));
                    n=n+2;
                    break;

                case 'd':
                    cs=*(int *)(_BP+n);
                    if(cs>0)
                    {
                        do
                        {
                        r=cs%10;
                        cs=cs/10;
                        nch[i]=r;
                        i++;
                        }while(cs!=0);

                        do
                        {
                        i--;
                        putch(nch[i]+48);
                        }while(i!=0);
                    }else if(cs<0)
                        {
                            cs=abs(cs);
                            do
                            {
                            r=cs%10;
                            cs=cs/10;
                            nch[i]=r;
                            i++;
                            }while(cs!=0);

                            putch('-');

                            do
                            {
                            i--;
                            putch(nch[i]+48);
                            }while(i!=0);
                        }
                    else if(cs==0)
                        {
                        putch('0');
                        }
                    n=n+2;
                    break;

                default:
                    fmt--;
                    putch(*fmt);
                    break;
            }
        }
        fmt++;
    }while (*fmt != '\0');
}

void main()
{
    myprintf("showchar:%c,shownumber:%d %d %d %d,and other special char%qwer%%%%wefterfdg%fwer",65,0,32767,-32767,0);
}

这个代码只有-32768不能显示,估计是压栈指针没有指示到。有心劲儿的同学可以自己改改~不行的话可以好好交流!“千万别说什么问题没有水平。”说这话的人真没水平。。。。

[ 本帖最后由 sxzjw 于 2010-5-26 21:59 编辑 ]
2010-05-26 21:57
sxzjw
Rank: 2
等 级:论坛游民
帖 子:32
专家分:21
注 册:2010-5-23
收藏
得分:0 
楼上高手啊~图形界面我还没有涉及到。。。我是个小菜鸟~真的。。向楼上学习!
2010-05-27 12:17
快速回复:【求助】一个简单的Printf实现代码~
数据加载中...
 
   



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

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