1

我有一个接受两个 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);
}
4

2 回答 2

4

在项目设置中修复“使用 Unicode 字符串”或使用

_stprintf(Buffer, _T("UserName: %S\n m_Password: %S\n"), UserName, Password);

#include <tchar.h>

如果您使用 Unicode(并且确实如此),请使用 '%S' 格式。

于 2012-05-29T13:40:10.493 回答
2

假设UserNamePassword被存储为宽字符串 ( wchar_t) 并且您正试图将它们放入char[]缓冲区中,然后使用 Visual c++%S来完成此操作。

sprintf(Buffer,"UserName: %S\n m_Password: %S\n",UserName,Password);
于 2012-05-29T14:15:09.597 回答