吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 332|回复: 21

[求助] C++指针用cout输出字符串问题

[复制链接]
bester 发表于 2019-11-8 22:16
本帖最后由 bester 于 2019-11-8 22:18 编辑

QQ截图20191108221230.png
首先MutexName的地址是0x01564d28,他是一个unicode字符串,很明显 前8个字节,也就是两个unicode字符,是乱码,所以呢我想跳过这个乱码,也就是要令b值=0x01564d30
然后*b输出这个字符串,但是问题来了,无论怎么样,我只能在控制台窗口输出一个\号,也就是只能输出2个字节的字符,没有办法形成字符串,想问一下大佬 这个要怎么样才能输出字符串?

补充一点,MutexName是用malloc 申请了1024个字节,用memset初始化为0过了,应该不是结束符的问题

不知道我有没有描述清楚,感谢大家的帮助

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cube 发表于 2019-11-9 15:15
bester 发表于 2019-11-9 13:52
请大佬指点,我看了半天没发现这个内存窗口里面的字符串有什么问题,用printf %S可以正常输出,用cout

%s是打印char的
%S是打印wchar的
cout是打印char的
wcout是打印wchar的
cout打印wchar为什么出问题,已经在内存面板显示的明白了,中间有char 0啊, 0不就是字符串数组的尾部么.

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
庞晓晓 + 1 我每天只有1币,给你了
bester + 1 + 1 谢谢老哥,感谢指点,非常感谢

查看全部评分

无闻无问 发表于 2019-11-8 22:33
MutexName你malloc申请的,不应该是地址常量吗?可以加4?
无闻无问 发表于 2019-11-8 22:35
 楼主| bester 发表于 2019-11-8 22:38
无闻无问 发表于 2019-11-8 22:33
MutexName你malloc申请的,不应该是地址常量吗?可以加4?

WCHAR*MutexName=(WCHAR*)malloc(1024);

指针不是可以加减吗?
 楼主| bester 发表于 2019-11-8 22:40
无闻无问 发表于 2019-11-8 22:35
试试wchar_t * b=MutexName;
         b=b+4;

11111.png
还是不行,不知道为啥
610100 发表于 2019-11-8 22:57
是不是编码原因?
 楼主| bester 发表于 2019-11-8 22:59
610100 发表于 2019-11-8 22:57
是不是编码原因?

我项目属性一般都设置成了多字节,总不能多字节不能用wchar吧?不过你提醒了我, 感谢,我试试
qq06314488 发表于 2019-11-8 23:14
%s表示输出的是char类型吧?%S才是输出wchar_t吧??好像是的,呜呼...
qq06314488 发表于 2019-11-8 23:16
再说了,都用C++了,干嘛还要用printf,直接cout<<b<<endl.试试
无闻无问 发表于 2019-11-9 09:52
bester 发表于 2019-11-8 22:40
还是不行,不知道为啥

你没看到,指针变量b所指已经正确,不对是你输出有问题吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:禁止回复非技术或与主题无关水贴,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2019-11-21 23:02

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表