我用VC++2008写的用FORMAT 格式化字符串怎么不对呢?

2024-12-22 10:01:26
推荐回答(3个)
回答1:

CString strOutput;
strOutput.Format("%s","Hello World!");
pDC -> TextOut(0,0,strOutput);
修改为
CString strOutput;
strOutput.Format("%s",L"Hello World!");
pDC -> TextOut(0,0,strOutput);

因为VS里用的是Unicode编码,所以字符串要改为宽字符。在字符串前加个L

回答2:

你在头文件里包含#include
然后这样初始化
strOutput.Format(_T("%s"),_T("Hello World!"));
因为默认情况下,字符串都是unicode的形式,
用unicode在nt以上的系统是一个很好的方式

回答3:

信春哥说的对,08默认是宽字符
写成strOutput.Format(_T("%s"),_T("Hello World!"));