这里边字符为了表示方便直接用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);
}