C语言 二进制文件的读取

这里边字符为了表示方便直接用16进制表示。二进制的原理相同。

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

//数据以16进制的形式写入文件。
void writeFile16()
{
	int i=0;

	char buf[]=" Let's say\"who know me? i love eveybody! \" 12345\r\n " ;

	FILE *pIn = fopen("File16in.txt","w");


	if(pIn!=NULL)
	{
		for(i=0;i < strlen(buf);i++)
		{
			fprintf(pIn,"%x ",buf[i]);//16进制数字写入
		}
	}

	fclose(pIn);
}

//数据以16进制的形式从文件里边读取
void ReadFile16()
{
	char buffer[16];
	char* endbuffer;
	long c;

	FILE *pIn = fopen("File16in.txt","r");
	FILE *pOut = fopen("File16out.txt","w");

	while ( fscanf(pIn,"%s",buffer) > 0)
	{		
		c = strtol(buffer,&endbuffer,16);//16进制的字符串转换成数字
		fprintf(pOut,"%c",c);
		memset(buffer,0,16);
	}

	fclose(pIn);
	fclose(pIn);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值