CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

谁帮我看看这简单的代码出了什么问题了。

楼主verlongan(verlongan)2005-05-03 22:05:55 在 C/C++ / C++ 语言 提问

#include   "stdafx.h"  
  #include   "windows.h"  
   
  void   main()  
  {  
  WCHAR   *str   =new   WCHAR[100];    
  wcscpy(str,   L"中华人民共和国");  
  wprintf(L"WCHAR   is   =   %s\n",   str);  
  printf("length   is   %d\n",   wcslen(str));  
  delete   []str;  
  return;  
  }  
  //没有任何输出,但如果把  
  wcscpy(str,   L"中华人民共和国");改为  
  wcscpy(str,   L"hello   world");   就有输出了。不知为何?  
  问题点数:0、回复次数:10Top

1 楼verlongan(verlongan)回复于 2005-05-03 22:08:49 得分 0

我的目的是测试unicode编程--《windows   核心编程》,用双字节来写,所以,如果你想改为    
  char   *str   这格式就免了,谢谢。Top

2 楼tuxw(醉书生)回复于 2005-05-03 23:28:07 得分 0

这段代码本身应该没有问题,可能是   VC   设置问题  
   
  我在   VC   中用   Intel   编译器编译输出正常,用   VC   自带的编译器编译就没有输出Top

3 楼chunhai12(小海)回复于 2005-05-04 00:07:21 得分 0

怎么看怎么别扭Top

4 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-05-04 00:10:25 得分 0

宽字符不懂。Top

5 楼277894613(秒大刀)回复于 2005-05-04 00:25:12 得分 0

void   main()  
  {  
  WCHAR   *str   =new   WCHAR[100];    
  wcscpy(str,   L"中华人民共和国");//7            
  wprintf(L"WCHAR   is   =   %s\n",   str);//没有输出  
   
  wcscpy(str,   L"hello world");//11  
  wprintf(L"WCHAR   is   =   %s\n",   str);//没有输出  
   
  wcscpy(str,   L"hello   world");//11  
  wprintf(L"WCHAR   is   =   %s\n",   str);//正常输出  
   
  printf("length   is   %d\n",   wcslen(str));  
  delete   []str;  
  return;  
  }  
  看来Unicode的是不能输出了Top

6 楼Jim_King_2000()回复于 2005-05-04 00:28:01 得分 0

终于明白在console下输出中文的UNICODE字符需要locale库。这样就没问题了。  
  #include   <locale.h>  
  #include   <stdio.h>  
  #include   <stdlib.h>  
   
  int   main(int   argc,   char*   argv[])  
  {  
   
  wchar_t   szOutput[]   =   L"你好!\n";  
  _wsetlocale(LC_ALL,   L"chs");  
  wprintf(L"%s",   szOutput);  
   
  return   EXIT_SUCCESS;  
  }  
  若是没有_wsetlocale(LC_ALL,   L"chs");这句,死活也看不到中文。除非不用UNICODE。Top

7 楼tuxw(醉书生)回复于 2005-05-04 01:37:11 得分 0

原来如此  
   
  不过为什么用   Intel   的编译器就不用_wsetlocale(LC_ALL,   L"chs");呢Top

8 楼yuhjnm_20001(力)回复于 2005-05-04 12:32:10 得分 0

markTop

9 楼dvdface(汉学堂)回复于 2005-05-04 17:35:14 得分 0

markTop

10 楼sTigerwsk(++++++禽兽联合国总理兼国防部长--骗子++++++)回复于 2005-05-06 18:39:35 得分 0

不对呀  
  我在DEV下把stdafx.h去掉  
  结果  
  有输出  
  输出正确Top

相关问题

  • 帮我看看这段简单的代码为什么不行?
  • 100分求助,帮我看一个简单的代码为什么通不过
  • 大伙帮忙看看这段简单的socket代码有什么问题.
  • 帮我看看这简单的代码
  • 简单的代码注释,请帮忙
  • 简单的代码,帮忙指正!
  • 帮忙写个简单功能代码.
  • 帮我看几句简单的代码
  • 帮我看看这段很简单的代码,结果是什么?为什么呢?
  • 最简单的问题,帮忙解释简单的代码!

关键词

  • 编译器
  • unicode
  • vc
  • 输出
  • wcscpy
  • wprintf
  • wchar
  • wsetlocale
  • 中华人民共和国
  • str

得分解答快速导航

  • 帖主:verlongan

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo