怎么cstring在cout中的输出乱了?

play100 2007-02-10 04:54:15
CString cpath = _T("D:\\yx\\test\\*.*");
cout << cpath<<endl;
控制台输出为:0039D8D0

环境:win2003server vc2005
...全文
1901 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
AvalonZST 2011-05-22
  • 打赏
  • 举报
回复
LS正解,最近也遇到这样的疑惑。。。
quackonchen 2008-07-06
  • 打赏
  • 举报
回复
好像只要转换一下就可以了,如 cout<<(LPCTSTR)name
name就是要输出的字符串。
play100 2007-02-12
  • 打赏
  • 举报
回复
问题解决了
谢谢各位 真是帮了大忙了
见于很多位的方法都可行,分数只能平均分配了
taodm 2007-02-12
  • 打赏
  • 举报
回复
效率?C++流比C的printf等等慢多啦,你怎么能用呢?
SimonFu 2007-02-11
  • 打赏
  • 举报
回复
wcout<<cpath.GetString()<<endl;
OOPhaisky 2007-02-11
  • 打赏
  • 举报
回复
不好意思啊,我还在用cout......^_^
htqx 2007-02-11
  • 打赏
  • 举报
回复

现在还有人用cout 么....(*^__^*) 嘻嘻……
hu_vane 2007-02-11
  • 打赏
  • 举报
回复
呵呵,楼上的也可以。

PS:
To htqx(航天奇侠) :
我纯用C++做引擎的,因为效率的原因,一般来说最多用用与OS相关的API,不会使用JAVA或者C#之类“高级”的东西,所以还停留在使用std::cout之类的“低级”阶段,见笑了。
hu_vane 2007-02-10
  • 打赏
  • 举报
回复
楼上的两种方法都是不行的。
因为LZ建的工程是UNICODE的,所以,CString中用的是UNICODE编码。处理UNICODE,当然要用宽字符函数了。因此,wcout是必需的。
sinkileu 2007-02-10
  • 打赏
  • 举报
回复
cout << cpath.GetBuffer(MAX_PATH) << endl;

cpath.ReleaseBuffer();
zcNetwork 2007-02-10
  • 打赏
  • 举报
回复
试试
CString cpath = _T("D:\\yx\\test\\*.*");
cout << (LPCTSTR)cpath<< endl;
hu_vane 2007-02-10
  • 打赏
  • 举报
回复
std::cout不支持宽字符,如果需要使用UNICODE,需要使用std::wcout输出宽字符。同时,需要对CString做一下转换,LPCTSTR(cpath);
hu_vane 2007-02-10
  • 打赏
  • 举报
回复
工程是UNICODE的,使用NotSet或者Multi-CharSet就行了。

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧