linux, 使用vprintf,va_list函数封装一个具有printf功能的函数
来源:互联网 发布:新倩女幽魂辅助软件 编辑:程序博客网 时间:2024/05/17 04:12
要想封装一个自定义的具有printf功能的函数,需要使用vprintf函数和va_list函数。
下面的一个例子封装了一个具备打印出日期时间的函数,其中使用了时间函数,time_t, localtime函数。
使用下面的my_printf函数进行输出,可以不用输入\n,函数会自动判断进行换行,读者可以自行研究一下这个函数哦。
#include <stdio.h>#include <stdarg.h>#include <time.h>#include <string.h>#include <malloc.h>void my_printf(char *format, ...);void my_printf(char *format, ...){ int iLen = 0; int iFlag = 0; //释放内存标志 char *cBuffer = NULL; char *pcParameter = NULL; time_t timep; struct tm *tmp = NULL; timep = time(NULL); tmp = localtime(&timep); //获取当地时间 printf("[%d-%d-%d ", tmp->tm_year-100+2000,tmp->tm_mon+1,tmp->tm_mday); //输出日期 printf("%d:%d:%d]", tmp->tm_hour,tmp->tm_min,tmp->tm_sec); //输出时间 pcParameter = format; iLen = strlen(format); if('\n' != format[iLen-1]) //判断字符串最后一个字符是不是\n { iFlag = 1; cBuffer = (char*)malloc(iLen+2); strncpy(cBuffer, format, iLen); cBuffer[iLen] = '\n'; //倒数第二位写为\n cBuffer[iLen+1] = '\0'; //倒数第一位写为\0 pcParameter = cBuffer; } va_list ap; va_start(ap, format); vprintf(pcParameter, ap); va_end(ap); if(1 == iFlag) { free(cBuffer); }}int main(){ int i = 9; int j = 10; my_printf("%d,%d", i, j); }
阅读全文
0 0
- linux, 使用vprintf,va_list函数封装一个具有printf功能的函数
- vprintf,vsprintf,sscanf函数的使用
- va_list和vprintf 的 关系
- 可变参数函数printf的实现(不使用va_list等内置宏定义)
- 封装自己的printf函数
- 各种输出函数的比较(printf/fprintf/sprintf/snprintf/vprintf/vfprintf/vsprintf/vsnprintf)
- php中格式化输出函数vprintf printf sprintf sscanf
- keil C51:printf sprintf vprintf vsprintf 函数学习
- 格式符函数printf()、sprintf()、 vprintf()、 vsprintf()、 fprintf() 和 vfprintf()
- printf函数的使用
- printf函数的使用
- c++封装printf函数
- 不使用man 3 printf的函数,实现一个简单的printf函数
- printf vprintf
- js封装一个函数用于提取具有相同className的元素
- perl printf函数的使用
- printf()函数的使用情况
- printf格式化函数的使用
- FNOI_TEST_1 a(模拟)
- Zend Studio 12.5.1 x86 x64 通用(Mac\Windows)破解补丁和注册码
- 第四篇:基本数据结构——队列的顺序表示
- [编程题]跳台阶和变态跳台阶
- python作业第二周
- linux, 使用vprintf,va_list函数封装一个具有printf功能的函数
- 树状数组
- 第五篇:基本数据结构——线性表的链式表示
- ajax同后台交互demo
- 258A. Little Elephant and Bits
- C语言中的变量
- HDU
- 第六篇:基本数据结构——栈的链式表示
- java中含有中文字符的编码和解码