#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
std::string HexDump(char *buf, int len) {
std::stringstream save;
for (unsigned char i = 0;i< len;i++)
{
//44 03 00 d1 56 00 00 05 00 16 60 4a 38 08 81 8e
//44 03 00 D1 56 00 00 05 00 16 60 4A 38 08 81 8E
save << std::uppercase << std::setfill('0') << std::setw(2) << std::hex << ((*(buf + i)) & 0xff);
}
std::cout << save.str() << std::endl;
return save.str();
}

VC 打印调试消息

#include <iostream>
#include <string>
#include <sstream>
#include <windows.h>
int main()
{
std::stringstream save;
save << (void*)(new string()) << std::endl;
::OutputDebugStringA(save.str().c_str());
getchar();
return 0;
}
void HexDump(char *buf, int len, int addr)
{
int i, j, k;
char binstr[80]; for (i = 0;i<len;i++)
{
if (0 == (i % 16))
{
sprintf(binstr, "%08x -", i + addr);
sprintf(binstr, "%s %02x", binstr, (unsigned char)buf[i]);
}
else if (15 == (i % 16))
{
sprintf(binstr, "%s %02x", binstr, (unsigned char)buf[i]);
sprintf(binstr, "%s ", binstr);
for (j = i - 15;j <= i;j++)
{
sprintf(binstr, "%s%c", binstr, ('!'<buf[j] && buf[j] <= '~') ? buf[j] : '.');
}
printf("%s\n", binstr);
}
else
{
sprintf(binstr, "%s %02x", binstr, (unsigned char)buf[i]);
}
}
if (0 != (i % 16))
{
k = 16 - (i % 16);
for (j = 0;j<k;j++)
{
sprintf(binstr, "%s ", binstr);
}
sprintf(binstr, "%s ", binstr);
k = 16 - k;
for (j = i - k;j<i;j++)
{
sprintf(binstr, "%s%c", binstr, ('!'<buf[j] && buf[j] <= '~') ? buf[j] : '.');
}
printf("%s\n", binstr);
}
}

C++ stl 怎么打印内存内容?的更多相关文章

  1. 优雅的重载toString方法,打印对象内容而不是打印内存地址的方法

    如果直接在日志或者System.out.println中打印java对象,会打印这个对象的内存地址,而不是具体内容. 为了便于调试,一般的做法有2种: 1.重写toStrong方法 2.将对象传入JS ...

  2. STL容器的内存分配

    这篇文章参考的是侯捷的<STL源码剖析>,所以主要介绍的是SGI STL实现版本,这个版本也是g++自带的版本,另外有J.Plauger实现版本对应的是cl自带的版本,他们都是基于HP实现 ...

  3. STL中的内存与效率

    STL中的内存与效率 1. 使用reserve()函数提前设定容量大小,避免多次容量扩充操作导致效率低下.  关于STL容器,最令人称赞的特性之一就是是只要不超过它们的最大大小,它们就可以自动增长到足 ...

  4. Fastreport怎么样在同一页上下部分打印相同内容

    使用FastReport遇到个难题,不知道怎么解决 分组打印之后,需要同一页上下部分打印相同内容,就是一式两份的联单打印. 例如: 送货单 ********** A 这里上半页,地区分组之后的内容 * ...

  5. C语言memmove()函数: 复制内存内容(可以重叠的内存块)

    头文件:#include <string.h> memmove() 用来复制内存内容,其原型为: void * memmove(void *dest, const void *src, s ...

  6. 使用tf.print()打印tensor内容

    使用tf.Print()打印tensor内容,这是tensorflow中调试bug的一个手段,例子如下所示: import tensorflow as tf a = tf.Variable(tf.ra ...

  7. 把打印的内容保存成文件(PDF)

    有时候网页的内容和打印的内容会有一些差异,需要把打印的内容倒出来.是有办法的. 1.以谷歌为内核的浏览器示例,按Ctrl+p快捷键打开打印对话框,如图: 2.点击更改按钮,更改打印机,会出现选择目标打 ...

  8. Vue项目中将table组件导出Excel表格以及打印页面内容

    体验更优排版请移步原文:http://blog.kwin.wang/programming/vue-table-export-excel-and-print.html 页面中显示的table表格,经常 ...

  9. 自己动手实现STL 01:内存配置器的实现(stl_alloc.h)

    一.前言 在STL中,容器是其中的重中之重,基本的STL中的算法,仿函数等都是围绕着容器实现的功能.而,内存配置器,是容器的实现的基础.所以,我第一次要去编写便是内存配置器的实现.在STL中,内存配置 ...

随机推荐

  1. python3 第六章 - 条件判断

    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 条件语句的执行过程,如下图: 条件语句,又称为if语句,它的完整语法如下: if 条件1: 语句块1 ...

  2. python_tornado_session用户验证

    什么是session? -- Django中带有session,tornado中自己写 -- 逻辑整理 用户请求过来,验证通过,随机生成一个字符串当作value返回给浏览器, 在服务器中用户信息与随机 ...

  3. python_如何定义带参数的装饰器?

    案例: 实现一个装饰器,用它来检查被装饰函数的参数类型. 需求: 装饰器可以通过函数,指明函数参数类型,进行函数调用的时候,传入参数,检测到不匹配时,抛出异常 如何解决这个问题? 先要获取函数的签名, ...

  4. 浏览器http的缓存机制

    原文出处-----分享从伯乐在线看到的一篇好文章  http://web.jobbole.com/85509/ 针对浏览器的http缓存的分析也算是老生常谈了,每隔一段时间就会冒出一篇不错的文章,其原 ...

  5. HTML学习(一)

    文本输出/超链接 <!--/* * @<h1></h1>到<h6></h6>六个h标签,分别表示不同大小的字体.h1最大,h6最小 * @< ...

  6. Linux实践篇--自动删除n天前日志

    原文出处:http://www.cnblogs.com/peida/archive/2013/03/25/2980121.html linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在 ...

  7. Python-常用第三方库

    python常用框架及第三方库(转载) 一.Web框架 1.Django: 开源web开发框架,它鼓励快速开发,并遵循MVC设计,比较庞大,开发周期短.Django的文档最完善.市场占有率最高.招聘职 ...

  8. 【转】利用matlab生成随机数函数

    原文地址:利用matlab生成随机数函数 rand(n):生成0到1之间的n阶随机数方阵  rand(m,n):生成0到1之间的m×n的随机数矩阵 (现成的函数) betarnd:贝塔分布的随机数生成 ...

  9. c# 可变字符串 StringBuilder

    普通的string不可变,除非用+ 但是+两个字符串后 会生成一个新的string实例.会在内存中创建新的字符串对象.如果重复的对字符串修改,将极大的增加内存开销.c#提供了个可变的字符串序列Stri ...

  10. Jmeter Smock Test规范设计

    Jmeter Smock Test规范设计 一.Smock Test物料 1.开发运行工具Jmeter,(下载地址: http://jmeter.apache.org/download_jmeter. ...