[调试]visual studio调试技巧

来源:互联网 发布:手机淘宝保证金交不了 编辑:程序博客网 时间:2024/05/18 18:21

显示UTF8数组

问题

有些时候需要将wstring转换到string,但是string是调试时看到的是乱码。例如,在如下代码中,调试到getchar();所在行时看narrowStr的内容便是乱码”鎴戞槸涓枃“。怎样显示出”我是中文“呢?

#include <string>#include <codecvt>#include <iostream>using namespace std;void main(){wstring str = L"我是中文";//wstring->stringwstring_convert<codecvt_utf8<wchar_t>> conv;string narrowStr = conv.to_bytes(str);cout<<narrowStr<<std::endl;getchar();}

上述代码中参考了“力为的技术博客”:std::wstring_convert处理UTF8。

解决方式

参考Using UTF-8 as the internal representation for strings in C and C++ with Visual Studio,解决方式是在监视(Watch)窗口(通过 调试->窗口->监视->监视1 调出)中在变量后边加上",s8"格式串(format specifier),如下图所示:

这里需要注意两点,一是,s8只能作用于char*或char[],因此在名称那一列只能用narrowStr.c_str();二是需要刷新(点击值那一列最后边那个旋转箭头)一下变量的值才能看到正确的结果,如下所示。

备注:Visual Studio版本要求:VS2008或更高

使用监视(Watch)窗口

参考cadcisdhht博文:Visual Studio 调试小技巧(2)-从查看窗口得到更多信息

使用命令窗口及即时窗口

这个属于高级技巧,一般用不着,参考MSDN。

原创粉丝点击