首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为啥输出是abcd?

2013-09-07 
为什么输出是abcd???#include stdafx.hint _tmain(int argc, _TCHAR* argv[]) {TCHAR buf[8] Labcdef

为什么输出是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去掉      

再编译就正常了

热点排行