我的函数有两个LPTSTR类型的参数,我正在尝试使用sprintf打印这两个值,如下所示,我无法打印确切的值。
int __stdcall Logon(LPTSTR UserName, LPTSTR Password)
{
char Buffer[2048];
sprintf(Buffer,"UserName: %s\n m_Password: %s\n",UserName,Password);
FILE *Ls=fopen("lo.log",a);
fprintf(Ls,Buffer);
fclose(Ls);
}
答案 0 :(得分:4)
在项目设置中修复“使用Unicode字符串”或使用
_stprintf(Buffer, _T("UserName: %S\n m_Password: %S\n"), UserName, Password);
和
#include <tchar.h>
如果您使用Unicode(并且确实如此),请使用'%S'格式。
答案 1 :(得分:2)
假设UserName
和Password
存储为宽字符串(wchar_t
)并且您尝试将它们放入char[]
缓冲区,则visual c ++使用{{ 1}}来完成这个。
%S