标题:可变长参数程序开发遇到的问题
取消只看楼主
abc594986308
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
结帖率:82.93%
已结贴  问题点数:3 回复次数:2 
可变长参数程序开发遇到的问题
#include<stdio.h>
#include<stdarg.h>
#include<assert.h>

void tiny_printf(char *format,...)
{
    int i;
    va_list  ap;
    va_start(ap,format);
    for(i=0;format[i] != '\0';i++){
        switch(format[i]){
        case 's':printf("%s ",va_arg(ap,char*));
            break;
        case 'd':printf("%d ",va_arg(ap,int));
            break;
        default:assert(0);
        }
    }
    va_end(ap);
    putchar('\n');
}
int main(void)
{
    tiny_printf("sdd","result..",3,5);
    tiny_printf("sdd","result..",6,7);
    return 0;
}
tiny_printf()为什么只能输出两个整形数据?
搜索更多相关主题的帖子: default 程序开发 include result 
2013-07-21 11:29
abc594986308
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
得分:0 
回复 2楼 rjsp
windowns vc++6.0
2013-08-14 21:40
abc594986308
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
得分:0 
回复 4楼 rjsp
#include<stdio.h>
#include<stdarg.h>
#include<assert.h>

void tiny_printf(char *format,...)
{
    int i;
    va_list  ap;
    va_start(ap,format);
    for(i=0;format[i] != '\0';i++){
        switch(format[i]){
        case 's':printf("%s ",va_arg(ap,char*));
            break;
        case 'd':printf("%d ",va_arg(ap,int));
            break;
        default:assert(0);
        }
    }
    va_end(ap);
    putchar('\n');
}
int main(void)
{
    tiny_printf("sdd","result..",3,5,8);//这里
    tiny_printf("sdd","result..",6,7,8);//这里
    return 0;
}
我写了三个数还是输出两个值。。。我的疑问在这里,没写清楚,见谅啊
2013-08-15 13:08



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




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

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