C/C++ 读取16进制文件
1.为什么有这种需求
因为有些情况需要避免出现乱码。不管什么编码都是二进制的,这样表示为16进制就可以啦。
2.如何读取16进制文件
最近编程用这一问题,网上查了一下,感觉还是自己写吧。
16进制数据一般是:text=0x340xb5...,就是0x开头,之后是两个数字十六进制数。
如果直接使用sscanf(text,"0x",&num),会把连续的数字读进去直到遇到'x'.
如使用sscanf读取text第一个读到的十六进制数是0x340,误判啦。最后,因为是4个一组,就先把4个存到数组,再读取吧。看后面的代码好了。
3.代码实例:
1 #include <string.h> 2 #include <stdio.h> 3 4 int main () 5 { 6 const char a[]="0x450x110x8b0xe8"; 7 char tmpHex[5]; 8 int num; 9 printf("the size of pattern:%d\n",sizeof(a)); //4*4+最后有一个'\0' 10 for(int i=0;i<sizeof(a)-1;i+=4){ 11 strncpy(tmpHex,a+i,4); 12 tmpHex[4]='\0'; 13 sscanf(tmpHex,"%x",&num); 14 printf("%s %d\n",tmpHex,num); 15 } 16 return 0; 17 }
输出结果:
C/C++ 读取16进制文件相关推荐
- DELPHI 内存流修改16进制文件, 文件太大时候OutofMemory的问题研究
DELPHI 内存流修改16进制文件, 文件太大时候OutofMemory的问题研究 问题描述: 需要用内存流打开一个300M大小的文件, 替换文件中固定长度的16进制编码为另一条编码 原始思路 1. ...
- notepad++查看16进制文件
notepad++软件在查看代码的时候很方便,但是想查看16进制格式的文件时,默认打开是乱码.下面就演示一下如何给notapad++安装HEX插件,安装好插件之后,就可以直接查看16进制文件了. He ...
- Python 直接读取 16进制 8进制 整数
Python 直接读取 16进制 8进制 整数 16进制 8进制 检测 16进制 k=int(input("k="),16) 8进制 p=int(input("p=&qu ...
- 用vi在linux下查看16进制文件
在vi的命令状态下 : :%!xxd --将当前文本转换为16进制格式. :%!od --将当前文本转换为16进制格式. :%!xxd -c 12--将当前文本转换为16进制格式,并每行显示12个字节 ...
- 自制操作系统-使用16进制文件显示 hello world
1.下载qemu: https://www.cnblogs.com/sea-stream/p/10849382.html 2.制作软盘镜像 使用010editor,新建文件 图2 另保存为cherry ...
- 将图像转换为16进制文件
在做图像处理时,有时需要将一张已有的图像写入到程序中.这时linux命令xxd可以完成这个需求. 注: win10可使用ubuntu子系统来使用linux命令,非常方便 xxd -i logo.bmp ...
- PNG文件16进制详解
详解PNG图片的16进制文件 1.概述 2.特性 3.文件结构 3.1.文件署名域 3.2.数据块 3.2.1.关键数据块 3.2.2辅助数据块 4.举例说明 ==前八字节分类表== ==关键数据块. ...
- C/C++ printf 输入16进制文本数据 多出许多ffffff的问题
问题描述:在编程过程中遇见一需求,需要从一文件中读取16进制格式的数据(格式如下图1所示),存储在内存中(char buf [MAX_SIZE]).然而,在测试读取的数据时,用printf(" ...
- 一款超方便超强大的16进制编辑器软件-HxD
今天给大家介绍一款查看和操作16进制文件的软件,这款软件就是HxD. 这款软件有很多功能,如下: (1)16进制查看及各种进制转换(2进制.10进制.8进制),如上图显示,非常方便: (2)16进制 ...
最新文章
- 11kw星三角启动延时几秒_电机星三角降压启动接线方法图解
- 【视频课】零基础免费38课时深度学习+超60小时CV核心算法+15大Pytorch CV实践案例助你攻略CV...
- 修改目录标题层级_关键词所在页面的层级越高权重越大
- android之隐藏状态栏、图标、布局
- C#实现四舍五入和JavaScript实现四舍五入
- linux运行tomcat常见问题,linux – tomcat运行,但是8080端口没有响应
- 即时通讯IM的安全性比较
- 推荐一款国产免费开源的ERP进销存系统 附带安装详细教程
- QCC3040一拖二发射器(aptXLL)replace CSR8670
- 以生活中的例子快速理解十个设计模式
- 移动彩信MM7 API JAVA 样例
- 简单局域网聊天室--Java版
- !function(){}() 什么意思
- Kali Linux蓝牙连接问题解决
- 复旦大学计算机学院教师简介,复旦大学计算机科学技术学院导师教师师资介绍简介-危辉...
- C# Spire.XLS 无限制 使用教程
- OpenGL ES glfw 下载和使用
- HTTP 最强资料大全
- Python安装Tensorflow因为版本低而出现的错误提示conda activate tensorflow-cpu Could not find conda environment: tenso
- FireFoxPortable升级3.5手记
热门文章
- MIP开发常见问题解答
- 在php里让字体划过变色,鼠标划过字体时如何用css来实现字体变色?(代码实测)...
- 全国计算机等级考试题库二级C操作题100套(第56套)
- java生成pdf加密_java使用iText 生成PDF全攻略(表格,加密)
- dubbo的invoke命令_dubbo 调试服务telnet命令
- 学习笔记~~~~~Set接口实现
- SpringCloud主要组件
- 福禄克网络电缆测试仪LinkIQ网络电缆测试仪的使用方法
- MIUI 13:带来全新小部件,新增三大隐私保护功能等
- WebSocket基础知识笔记