| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2236 人关注过本帖
标题:【求助】一个简单的Printf实现代码~
只看楼主 加入收藏
小小小丹丹
Rank: 2
等 级:论坛游民
帖 子:26
专家分:13
注 册:2010-4-6
收藏
得分:1 
一点没水平的问题不要再问了
2010-05-25 16:04
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:1 
回复 楼主 sxzjw
楼主的问题能否描述的清楚一点?
你不是真的要问二楼给出的那种问题吧。

南国利剑
2010-05-26 01:36
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
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
看看这样的行不行? 不过这样封只是在图形程序调试时有点好处。
void print(const char* fmt, ...)   
{
    char text[256];  

    va_list  ap;         
    if (fmt == NULL)         
        return;         
    va_start(ap, fmt);         
    vsprintf(text, fmt, ap);     
    va_end(ap);  
    puts(text);
}


我就是真命天子,顺我者生,逆我者死!
2010-05-26 22:05
sxzjw
Rank: 2
等 级:论坛游民
帖 子:32
专家分:21
注 册:2010-5-23
收藏
得分:0 
楼上高手啊~图形界面我还没有涉及到。。。我是个小菜鸟~真的。。向楼上学习!
2010-05-27 12:17
Afghan
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2010-5-30
收藏
得分:0 
纯粹路过
回帖切磋是一种美德,每天回帖即可获得10分可用分!
2010-05-30 20:36
u2jrmao
Rank: 2
等 级:论坛游民
帖 子:20
专家分:11
注 册:2010-3-25
收藏
得分:0 
路过
2010-05-30 21:12
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
/******************************************************************
* Copyright (c) 2010, XX Technologies Co., Ltd.
* All rights reserved.
*
* 文件名称:u_print.c
* 文件标识:见配置管理计划书
* 摘    要:调试输出信息
*
* 取代版本:1.0
* 原作者  :zhong yunde
* 完成日期:2010年6月13日
*******************************************************************/
#include <stdio.h>
#include <stdarg.h>
#include "u_print.h"

int debug_print(char *fmt, ...)
{
    int cnt = 0;
#ifdef _DEBUG
    va_list argptr;
    char buffer[1024];
   
    va_start(argptr, fmt);
    cnt = vsprintf(buffer, fmt, argptr);
    puts(buffer);
    va_end(argptr);
#endif
    return(cnt);
}
 
改下函数名即可

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-06-13 01:07
快速回复:【求助】一个简单的Printf实现代码~
数据加载中...
 
   



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

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