win32 下 支持浮点的printf系列函数

来源:互联网 发布:淘宝助理价格怎么弄 编辑:程序博客网 时间:2024/06/06 11:38
int wsprintf(
    LPTSTR lpOut, // 输出缓冲区,最大为1024字节
  LPCTSTR lpFmt,// 格式字符串
  ...);         // 需输出的参数,多少个参数都可以的,最起码前两个必须有.

函数作用: 
  函数 wsprintf() 将一系列的字符和数值输入到缓冲区。
  输出缓冲区里的的值取决于格式说明符(即"%")。
  如果写入的是文字,此函数给写入的文字的末尾追加一个 '\0'。
  函数的返回值是写入的长度,但不包括最后的 '\0'。


我们在接触C语言的时候还接触过一个 sprintf() 的函数,用法和 wsprintf() 基本一样,区别在于:
wsprintf()包含在头文件 windows.h 中,sprintf() 包含在头文件 stdio.h 中。
wsprintf 其实分为 wsprintfA 和 wsprintfW 两个版本,前者对应 sprintf,后者对应 wsprintf。
wsprintf 有 1024 字符限制,而且不支持浮点数。
所以注意了,该函数不支持浮点数的输入输出。
 
如果要输出浮点数,在 ASCII 编码方式下可以使用 sprintf,在 UNICODE 编码方式下可以使用 swprintf。通用的方法是使用宏 _stprintf,这样在两种编码方式下都可以编译通过。