C++ stl 怎么打印内存内容?
#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 怎么打印内存内容?的更多相关文章
- 优雅的重载toString方法,打印对象内容而不是打印内存地址的方法
如果直接在日志或者System.out.println中打印java对象,会打印这个对象的内存地址,而不是具体内容. 为了便于调试,一般的做法有2种: 1.重写toStrong方法 2.将对象传入JS ...
- STL容器的内存分配
这篇文章参考的是侯捷的<STL源码剖析>,所以主要介绍的是SGI STL实现版本,这个版本也是g++自带的版本,另外有J.Plauger实现版本对应的是cl自带的版本,他们都是基于HP实现 ...
- STL中的内存与效率
STL中的内存与效率 1. 使用reserve()函数提前设定容量大小,避免多次容量扩充操作导致效率低下. 关于STL容器,最令人称赞的特性之一就是是只要不超过它们的最大大小,它们就可以自动增长到足 ...
- Fastreport怎么样在同一页上下部分打印相同内容
使用FastReport遇到个难题,不知道怎么解决 分组打印之后,需要同一页上下部分打印相同内容,就是一式两份的联单打印. 例如: 送货单 ********** A 这里上半页,地区分组之后的内容 * ...
- C语言memmove()函数: 复制内存内容(可以重叠的内存块)
头文件:#include <string.h> memmove() 用来复制内存内容,其原型为: void * memmove(void *dest, const void *src, s ...
- 使用tf.print()打印tensor内容
使用tf.Print()打印tensor内容,这是tensorflow中调试bug的一个手段,例子如下所示: import tensorflow as tf a = tf.Variable(tf.ra ...
- 把打印的内容保存成文件(PDF)
有时候网页的内容和打印的内容会有一些差异,需要把打印的内容倒出来.是有办法的. 1.以谷歌为内核的浏览器示例,按Ctrl+p快捷键打开打印对话框,如图: 2.点击更改按钮,更改打印机,会出现选择目标打 ...
- Vue项目中将table组件导出Excel表格以及打印页面内容
体验更优排版请移步原文:http://blog.kwin.wang/programming/vue-table-export-excel-and-print.html 页面中显示的table表格,经常 ...
- 自己动手实现STL 01:内存配置器的实现(stl_alloc.h)
一.前言 在STL中,容器是其中的重中之重,基本的STL中的算法,仿函数等都是围绕着容器实现的功能.而,内存配置器,是容器的实现的基础.所以,我第一次要去编写便是内存配置器的实现.在STL中,内存配置 ...
随机推荐
- python_如何让字典保持有序?
案例: 某编程竞赛系统,对参赛选手编程解题进行计时,选手完成题目后,把该选手解题用时记录到字典中,以便赛后按选手名查询成绩(答题时间越短,成绩越优秀) {'lili':(1,43),'yuyu':(2 ...
- CColor类封装
CColor类封装 Color.h #pragma once #include <sstream> #include <string> using namespace std; ...
- linkin大话面向对象--包装类
Java提倡的万物皆对象,但是数据类型的划分出现了基本数据类型和引用数据类型,那么我们怎么能把基本数据类型称为对象呢? 基本数据类型 包装类 byte Byte short Short int Int ...
- Asp.net Core 入门实战 2.请求流程
Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个源码合集,方便一次性Clone,喜欢的(Star),本系列持续更新,也可以通过我的网站访问 ...
- VNC配置
简介 VNC (Virtual Network Console)是虚拟网络控制台的缩写.它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 UNIX ...
- unicode文件处理(如果是ANSI编码就不需要了)
1.unicode文件的打开必须用rb模式. 3.wchar_t str[100] = { 0 }; 这个占200个字节. 2.宽字符对应的处理 fgetc fgetwc fputc fputwc f ...
- redis 简易监控的几种方法
简介 针对Redis 实现性能监控的几种方法 一.使用info命令 命令说明 127.0.0.1:6380> info # Server redis_version:3.2.11 redis_g ...
- 浅谈 HTML5plus 开发移动应用
什么是 HTML5plus DCloud 公司提供的,使用传统 web 技术开发移动应用的解决方案. 增强版的手机浏览器引擎,让HTML5达到原生水平! 产品口号,总会有些夸张的成分,不要在意这些细节 ...
- 随机切换IP和UA
在爬虫爬取过程中,网站会根据我们的IP和UA去确认到底是浏览器操作还是爬虫在操作,所以,为了让爬虫不被网站禁止,随机切换Ip 和UA是很重要的,因为这个类在各个爬虫中经常要用到,所以可以自已维护一份随 ...
- CSS中的选择器之类选择器和id选择器
1.css中的选择器: 1.类选择器,又叫class选择器 2.id选择器 3.html元素选择器(又叫标签选择器) 4.通配符选择器 5.伪类选择器 6.组合选择器(多元素选择器,子元素选择器,后代 ...