| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 691 人关注过本帖
标题:可变长参数程序开发遇到的问题
只看楼主 加入收藏
abc594986308
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
结帖率:82.93%
收藏
已结贴  问题点数:3 回复次数:6 
可变长参数程序开发遇到的问题
#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
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:3 
平台、编译器、编译器版本?
2013-07-22 12:42
abc594986308
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
收藏
得分:0 
回复 2楼 rjsp
windowns vc++6.0
2013-08-14 21:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:0 
以下是引用abc594986308在2013-8-14 21:40:52的发言:

windowns vc++6.0
没有这么古老的编译器的帮你测试,我只能说:你给出的代码没有错,都很正确

代码没有错的话,要么是你的编译器错了,要么是你看错了。
2013-08-15 08:47
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
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:0 
    tiny_printf("sddd","result..",3,5,8);//这里
    tiny_printf("sddd","result..",6,7,8);//这里
2013-08-15 13:25
sclqian
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2013-8-8
收藏
得分:0 
int main(void)
{
    tiny_printf("sdd","result..",3,5,8);//这里
    tiny_printf("sdd","result..",6,7,8);//这里
    return 0;
}
改成这样就可以了,这个函数式根据第一个参数里面的字符 s和d来输出数据的,你这里只有sdd 所以可以输出一个字符串 和连个整数
你要是输出三个整数,要改成 sddd,就可以了
2013-08-15 13:25
快速回复:可变长参数程序开发遇到的问题
数据加载中...
 
   



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

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