txt文件里面装的是十六进制的数据,而bin文件是二进制,因此我们要把十六进制转为二进制。实现思路就是,以可读的方式打开txt文件,然后以读写打开或建立一个二进制是wb+,打开后,不断的用fgetc读取一个字符,如果遇到空格换行那些继续,如果遇到0~9,还有a~f,需要做转二进制的操作,我定义了一个数组data[2] ,fgetc读到的字符分别放到data[0],data[1]里面去,当i等于二的时候我重新i为0,这样能不断的放到data[0],data[1]里面去,然后再对data[0],data[1]合并转换,转成bin文件所想的进程,我用in来接收,然后再将这个处理的in用fputc放到目标bin下,直到读取完为止就退出

利用ascii码,把字符转为我们真正的数值,然后2个数值合并为一个16进制数值,这样就可以存放了在一个字节的数组里面了。

#include <stdio.h>
#include <stdint.h>uint32_t i = 0;
uint32_t cnt = 0;int hexHandler(char *fileSrcName,char *fileDesName)
{FILE* fpSrc;FILE* fpDes;int out, in;int data[2];//打开源文件//FILE *fopen(char *filename, char *mode),如果此文件不能打开,则返回NULL指针。fpSrc = fopen(fileSrcName, "r");if (fpSrc ==NULL){printf("%s cannot be open!\n", fileSrcName);return -1;}
//以读写打开或建立一个二进制是wb+fpDes = fopen(fileDesName, "wb+");if (fpDes == NULL){printf("could not create the binary file: %s\n", fileDesName);return -1;}while (1){//如果到达文件末尾或发生读错误,则返回 EOF     int fgetc(FILE *stream)out = fgetc(fpSrc);if (out == EOF){if (i == 1){fputc(data[0], fpDes);cnt++;}break;}//如果遇到空格、\r、\n这些符号继续else if (out == ' ' || out == '\n' || out == '\r'){continue;}//大于0小于9的ascii就减去0,得到的就是阿拉伯数字else if (out >= '0' && out <= '9'){out = out - '0';}//A到F,减去A+10,就是十多else if (out >= 'a' && out <= 'f'){out = out - 'a' + 10;}else if (out >= 'A' && out <= 'F'){out = out - 'A' + 10;}else{printf("存在其他二进制文件!\n");fclose(fpDes);fclose(fpSrc);return -1;}//我定义了个数组data[2],分别把得到的字符放入data[0],data[1]data[i] = out;i++;if (i == 2){i = 0;//将data[0] data[1]相加进行转换操作in = (data[0] << 4) + data[1];//将处理后的数据放进.bin 文件//int fputc(int char, FILE *stream) 把参数 char 指定的字符(一个无符号字符)写入到指定的流fputc(in, fpDes);cnt++;}}fclose(fpDes);fclose(fpSrc);}int main(int argc,char **argv)
{char *fileSrcName = argv[1];char *fileDesName = argv[2];//提示用户用./a.out xxx.txt xxx.bin运行if(argc <2 ){printf("please input ./a.out xxx.txt xxx.bin");}//封装了一个进制处理函数hexHandler(fileSrcName,fileDesName);printf("transform success!\n");printf("totall %d bytes!\n", cnt);return 0;
}

目标bin文件,在32位系统上使用hexdump确认结果是否正确

小白写博客,如有不足,望原谅!

实现一个小程序,把txt文件里面的十六进制数据读取出来,转成bin文件相关推荐

  1. 从0开始写一个小程序

    项目简介 从0开始写一个小程序,本来想写一个新闻类的程序,后来发现调用的聚合数据api每天只能访问100次,就换成豆瓣的了,直接用豆瓣的接口又访问不了,在网上查了一下,要把豆瓣的地址换成"h ...

  2. 如何将自己的文件进行加密?一个小程序的教你搞定

    最近在B站学了一个小技巧,写一个小程序来将自己的文件进行加密,这篇文章就用C语言来分享给大家. 首先我们知道,不管是什么文件,对电脑来说都只是一推0101的二进制数,既然这样,我们是不是可以将里面的二 ...

  3. 去除代码行号的一个小程序(控制台版本)

    清风竹林发布了去除代码行号的一个小程序,确实方便大家收集一些文章代码,但个人认为象这样的小东东,要使广大网友能拿来就用,用.Net 2.0做成WinForm,有点贵族化了,于是动手整出个平民化的控制台 ...

  4. Python 练习册,每天一个小程序

    Python 练习册,每天一个小程序 说明: Python 练习册,每天一个小程序.注:将 Python 换成其他语言,大多数题目也适用 不会出现诸如「打印九九乘法表」.「打印水仙花」之类的题目 点此 ...

  5. 制作一个查询信息程序_三步学会制作一个小程序

    小程序在刚出现的时候简直是惊艳了整个业界,不管什么内容,光是那酷炫的交互效果就足以篇篇刷屏了,再加上"用完即走",不用安装.不占用内存.入口众多等特性.不过早期由大厂商的专业程序员 ...

  6. 小程序工程化实践(上篇)-- 手把手教你撸一个小程序 webpack 插件,一个例子带你熟悉 webpack 工作流程...

    本文基于 webpack 4 和 babel 7,Mac OS,VS Code 小程序开发现状: 小程序开发者工具不好用,官方对 npm 的支持有限,缺少对 webpack, babel 等前端常用工 ...

  7. VS2013安装OpenCV4.1版本并搭建一个小程序

    <VS2013安装OpenCV4.1版本并搭建一个小程序> [注意1] 在"链接器=>输入=>附加依赖库"中,只添加opencv_world410d.lib ...

  8. 怎样自己制作一个小程序?新手必知流程!

    随着市场需求的变化.不断成长的微信平台.随着周边小程序等功能的发布,商店公司开发小程序已经成为一种趋势.但是对于怎样自己制作一个小程序,很多卖家公司还是"新手",不明白应该使用什么 ...

  9. c语言计算二次函数顶点坐标,C语言编写一个求一元二次方程的实根的程序。 编辑一个小程序去做一元二次方程的求解(b^24ac)...

    导航:网站首页 > C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二次方程的求解(b^2>4ac) C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二 ...

最新文章

  1. Zend Framework一
  2. 李宏毅深度学习——Tips for Deep Learning
  3. XML Web Service 安全性
  4. MySQL备份与恢复——基于Xtrabackup物理备份恢复
  5. 面试一位硕士海龟前端小姐姐有感
  6. 菜单工具栏wxPython菜单与工具栏基础示例
  7. windows残留软件卸载
  8. php底层实现也是c语言,深入php内核,从底层c语言剖析php实现原理
  9. 第十章:Java_IO流
  10. 训练残骸模式– Java 8中的改进实现
  11. Iphone表视图的简单操作
  12. link引入html5,CSS引入方式 | link和@import的区别 — 生僻的前端考点
  13. Linux用ctrl + r 查找以前(历史)输入的命令
  14. vue获取当前月最后一天_只争朝夕,不负韶华——站在2020年第一天,回望2019最后的两个月...
  15. Linus Torvalds的安全性,Facebook的AI工具等
  16. 雨林木风windows7旗舰版
  17. ad怎么修改栅格_AD18怎么改变pcb原理图的网格大小
  18. redis java 视频教程_Redis基础与提升视频教程
  19. 【老骥伏枥-原创】DIY在VMware上安装万由U-NAS系统的初体验
  20. 中国历史人物传记数据库 CBDB 若干表简介

热门文章

  1. SDO处理过程(一)
  2. 编译原理实验二:Bison
  3. 上海舟山沈家门普陀山2日游实用自驾攻略
  4. python3ddos攻击_DDOS攻击
  5. 全国10大Java高薪城市公布!你的城市排第几?
  6. 到目前为止的解题汇总目录
  7. 视频服务器运行失败w7,大神解决win7系统打开Windows Media Player听歌提示“服务器运行失败”的修复步骤...
  8. 为什么要开发HDMI4K视频采集卡芯片方案‍
  9. 路由协议与交换技术——RIP和EIGRP
  10. 重复网页,网址已提交但未被选为规范网址—google