一个fprintf的简单封装实例(vsprintf,va_start(),+va_arg(),+va_end()可变参数列表)

对于不方便进行调试的程序,最好的方法,就是将调试信息写入文件了。

下面是一个简单的实例,仅供参考。


程序代码:

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

#ifndef DEBUG
#define DEBUG
#endif

int   LOG2F(const char *format,...) 
{       
	int ret = 0;
	
#ifdef DEBUG	
	FILE* fp = NULL;	
	fp=fopen("log.txt","a+");
	if(fp != NULL)
	{	
		va_list   args; 
		va_start(args,format); 
		vfprintf(fp,format,args);
		va_end(args); 
		fflush(fp);  
	 }   
	 else
	 {
	 	ret = 1;
	 }
	 
	 if(fp != NULL)
	 {
	 	fclose(fp);
	 	fp = NULL;
	 }
#endif
	 
	return ret;
} 

int main()
{
	char *str = "It is a Log test  program!";
	int ix = 10;
	float fx = 2.0;
	
	LOG2F("%s %d %f\n",str,ix,fx);	
	
	return 0;
}


输出:

It is a Log test  program! 10 2.000000


欢迎大家关注我的微信公众号:

微信公众号:sn0wdr1am

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yang_hui1986527/article/details/6870138
文章标签: fp null float list
个人分类: C
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭