C语言之可变参实现scanf函数
Posted Engineer-Bruce_Yang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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函数来输入
以上是关于C语言之可变参实现scanf函数的主要内容,如果未能解决你的问题,请参考以下文章