您的位置:首页 > 其它

c 函数不定参数(不限参数)使用实例 不定参数输出函数

2010-12-24 11:17 309 查看
va_start:根据参数入栈的特点,从最近第一个可变参数的固定参数开始,依次获取每个可变参数的地址。

头文件:#include <stdarg.h>

/**
函数名: vprintf
功 能: 送格式化输出到stdout中
用 法: int vprintf(char *format, va_list param);
程序例:
**/
#include <stdio.h>
#include <stdarg.h>

int vpf(char *fmt, ...)
{
va_list argptr;
int cnt;

va_start(argptr, fmt);
cnt = vprintf(fmt, argptr);
va_end(argptr);

return(cnt);
}

int main(void)
{
int inumber = 30;
float fnumber = 90.0;
char *string = "abc";

vpf("%d %f %s/n",inumber,fnumber,string);
system("pause");
return 0;
}

/**

函数名: vfprintf
功 能: 送格式化输出到一流中
用 法: int vfprintf(FILE *stream, char *format, va_list param);
程序例:

**/

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

FILE *fp;

int vfpf(char *fmt, ...)
{
va_list argptr;
int cnt;

va_start(argptr, fmt);
cnt = vfprintf(fp, fmt, argptr);
va_end(argptr);

return(cnt);
}

int main(void)
{
int inumber = 30;
float fnumber = 90.0;
char string[4] = "abc";

fp = tmpfile();
if (fp == NULL)
{
perror("tmpfile() call");
exit(1);
}

vfpf("%d %f %s", inumber, fnumber, string);
rewind(fp);
fscanf(fp,"%d %f %s", &inumber, &fnumber, string);
printf("%d %f %s/n", inumber, fnumber, string);
fclose(fp);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐