C语言之可变参实现scanf函数

既然有printf函数可变参实现,那就一定有scanf函数的可变参实现。废话不多说,源码奉上:

本源码不过多分析,如要明白原理,请翻本博客以往的文章看说明。

欢迎关注新浪微博:http://weibo.com/u/1896293701/home?topnav=1&wvr=6

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


int myscanf(const char *fmt , ...) ;

int main(void)
{
	int num ;
	printf("pls input num:\n"); 
	myscanf("%d",&num);
	printf("num:%d\n",num);
	return 0 ;
}
//以下的实现方法我就不多做解释了,以往的博客写得很详细,翻翻就可以看懂,不难。
int myscanf(const char *fmt , ...)
{
	va_list ap ; 
	int ret ; 
	va_start(ap , fmt);
	ret = vscanf(fmt,ap); //这里调用了C库的vscanf函数,以后找到它再把它弄出来,分析方法和vprintf雷同。
	va_end(ap);
	return ret ;
}
运行结果:

输入100,输出100,用myscanf函数来输入



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值