c++11中用_sntprintf代替_stprintf

sprintf、swprintf 
分别是对单字节/双字节字符格式化的,wsprintf根据预定义指示符的不同可以对单字节/双字节字符格式化。 wsprintf和swprintf比较,其实这两个函数对用用户来说是一样的,只不过前者是在 Winbase.h声明;后者是在stdio.h, stdlib.h文件中声明。 对于wsprintf, 在编译器编译过程中会检查你所定义的宏,然后将TCHAR.H文件中的以_tcs打头的函数转换成对应的str或wcs大头的函数。

因为历史原因,使得 sprintf 和 swprintf 的参数格式不尽一致,所以,如果使用 _stprintf 时实现 ANSI 和 Unicode 双版本编程时,当指定使用 C99 以上标准编译 Unicode 版本时,通常会警告 swprintf 出错,此时可更换使用 snwprintf 代替(注意参数也要调整),即使用 _sntprintf 代替 _stprintf 实现功能。

原文地址:https://www.cnblogs.com/zxpo/p/3620971.html