读书人

为啥输出是abcd?

发布时间: 2013-09-07 14:12:44 作者: rapoo

为什么输出是abcd???


#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
TCHAR buf[8] = L"abcdef";
char buf2[8*2];
memcpy(buf2,buf,8);
printf("%ws\n",buf2);
return 0;
}


[解决办法]
引用:

//估计你这是在UNICODE下的
memcpy(buf2,buf,sizeof(TCHAR)*8);

++
[解决办法]
这上面解决也还可以
memcpy(buf2,buf,8);//顺便说下,这个是经常性发生的错误,建议用sizeoof(char)*16防止越界
[解决办法]
在项目-属性-常规-字符集中,改成使用多字节字符集
TCHAR buf[8] = "abcdef"; //L去掉
printf("%s\n",buf2); //w去掉

再编译就正常了

读书人网 >C++

热点推荐