Chosen

常用链接

统计

最新评论

C++实现类似printf的不定参数函数

      其实,C++实现类似printf()函数的不定参数很简单,代码一写就明白了:
 1 #define BUFFSIZE 4096
 2 
 3 void Log2DebugView(const char* format,  ...)
 4 {
 5     char buf[BUFFSIZE];
 6     char* p = buf;
 7     va_list args;
 8     va_start(args, format);
 9     vsprintf(p, format, args);
10     va_end(args);
11     //OutputDebugStringA(buf);
12 }
      其中最核心的就是第7到第10行,解析format字符串中的格式化参数,如 %c, %d 等。最后得到的'buf',即是格式化后的字符串。比如调用了: Log2DebugView("Test dbgview for id=%d, name=%s.", 5, "chosen"); 然后buf的内容便是: "Test dbgview for id=5, name=chosen."。
      至于最后的那句"OutptDebugString(buf);",是一个系统调用函数,主要用于将格式化后信息输出到Visual Studio的'output'窗口中(Debug模式下),或者输出到一个叫"dbgView.exe"的程序窗口中(运行模式下)。这对于我们调试来说是一个非常有用的工具,而且程序运行完后,这些格式化后的信息,还会保留在output或debView的窗口中,供我们分析。注:dbgView.exe可以在网上搜索并免费下载使用。

posted on 2013-05-01 17:23 Choice 阅读(2717) 评论(2)  编辑 收藏 引用 所属分类: C++

评论

# re: C++实现类似printf的不定参数函数 2013-05-02 08:23 P

忍不住吐槽。。分类应该是C  回复  更多评论   

# re: C++实现类似printf的不定参数函数 2013-05-03 11:46 Choice

@P 唉,主要是一直写的是C++,就分到这一类了  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理