C/C++ 读取16进制文件
1.为什么有这种需求
因为有些情况需要避免出现乱码。不管什么编码都是二进制的,这样表示为16进制就可以啦。
2.如何读取16进制文件
最近编程用这一问题,网上查了一下,感觉还是自己写吧。
16进制数据一般是:text=0x340xb5...,就是0x开头,之后是两个数字十六进制数。
如果直接使用sscanf(text,"0x",&num),会把连续的数字读进去直到遇到'x'.
如使用sscanf读取text第一个读到的十六进制数是0x340,误判啦。最后,因为是4个一组,就先把4个存到数组,再读取吧。看后面的代码好了。
3.代码实例:
#include <string.h>
#include <stdio.h> int main ()
{
const char a[]="0x450x110x8b0xe8";
char tmpHex[];
int num;
printf("the size of pattern:%d\n",sizeof(a)); //4*4+最后有一个'\0'
for(int i=;i<sizeof(a)-;i+=){
strncpy(tmpHex,a+i,);
tmpHex[]='\0';
sscanf(tmpHex,"%x",&num);
printf("%s %d\n",tmpHex,num);
}
return ;
}
输出结果:

C/C++ 读取16进制文件的更多相关文章
- 使用vim修改和查看16进制文件
使用前的准备工作,如果没有安装,使用命令安装: pacman -S vim 使用vim的十六进制功能查看和编辑文本文件,创建测试文件,使用命令如下: vim test.txt 进入“插入”模式,使用命 ...
- 自制操作系统-使用16进制文件显示 hello world
1.下载qemu: https://www.cnblogs.com/sea-stream/p/10849382.html 2.制作软盘镜像 使用010editor,新建文件 图2 另保存为cherry ...
- CFileDialog类与16进制格式的dat文件
CFileDialog类与16进制格式的dat文件 要将数据保存为.dat文件,而且是16进制的数字,怎么保存? 要读取.dat文件,文件是16进制的,怎么读取? 用CFileDialog类可以得到[ ...
- [原创]K8飞刀20160613 Plesk密码 & 注册表16进制转换 & Html实体解密
K8飞刀 by K8拉登哥哥@[K8搞基大队]博客: http://qqhack8.blog.163.com 简介: K8飞刀是一款多功能的安全测试工具. Hacker Swiss Army Kni ...
- Java对文件的16进制读取和操作
大家可以参考一下源代码的相关部分注释,然后写出自己的16进制处理程序.有几个重点地方: 16进制字符串->10进制数 int input = Integer.parseInt("Str ...
- C#将文件转成16进制码流写入数据库存起来,访问的时候再还原成PDF文件。
转自https://blog.csdn.net/liubowei_0312/article/details/53378146 适合将文件写入数据库,远程访问的时候还原1.首先把文件转成十六进制文件流 ...
- linux以16进制查看文件
vim 先用vim -b data 以2进制打开文件,然后用xxd工具转化,在vim的命令行模式下: :%!xxd --将当前文本转化为16进制格式 :%!xxd -r --将16 ...
- linux以16进制方式查看文件
vim打开文件 :%!xxd 以16进制查看 :%!xxd -r 转回来
- php实现文件与16进制相互转换
php实现文件与16进制相互转换 <pre><?php/** * php 文件与16进制相互转换 * Date: 2017-01-14 * Author: fdipzone * Ve ...
随机推荐
- 最详细的vue-cli安装教程 &^没有之一 ^& 大神亲测。。╮( ̄▽  ̄)╭
这里介绍使用git安装,电脑自带命令行依然可以使用进行安装 第一步 node环境安装 1.1 如果本机没有安装node运行环境,请下载node 安装包进行安装 1.2 如果本机已经安装node的运行换 ...
- JAVAEE——宜立方商城05:前台系统搭建、首页展示、Cms系统的实现
1. 学习计划 1.前台系统搭建 2.商城首页展示 3.Cms系统的实现 a) 内容分类管理 b) 内容管理 4.前台内容动态展示 2. 商城首页展示 系统架构: 页面位置: 2.1. 工程搭建 可以 ...
- odoo打包下载
view 视图中下载按钮的编辑 <record id="action_download_zip" model="ir.actions.server"> ...
- Servlet的基本架构
Servlet的基本架构: package test; import java.io.IOException; import javax.servlet.ServletException; impor ...
- python中的urlencode和urldecode
python将字符串转化成urlencode ,或者将url编码字符串decode的方法: 方法1: urlencode:urllib中的quote方法 >>> from urlli ...
- Python Django 中的STATIC_URL 设置和使用解析
使用Django静态设置时,遇到很多问题,经过艰苦的Baidu, stack overflow, Django原档阅读,终于把静态图片给搞出来了.特记录下来. 关键的概念:Django中,静态资源的存 ...
- 「JSOI2018」战争
「JSOI2018」战争 解题思路 我们需要每次求给一个凸包加上一个向量后是否与另外一个凸包相交,也就是说是否存在 \[ b\in B,(b+w)\in A \] 这里 \(A, B\) 表示凸包内部 ...
- hashmap的遍历方法
How to iterate over the entries of a Map? What is the order of iteration - if you are just using Map ...
- Codeforces Round #222 (Div. 1) B. Preparing for the Contest 二分+线段树
B. Preparing for the Contest 题目连接: http://codeforces.com/contest/377/problem/B Description Soon ther ...
- php模块组成
php总共有三个模块:内核.ZEND引擎.扩展. 内核是用来处理请求.文件流.错误处理等操作的: ZEND引擎是将源文件转换成机器语言,然后在虚拟机上运行: 扩展层是一组函数.类库和流,php使用它们 ...