代码
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define MAXLEN 1024
void Fill0(char t[])
{
if(strlen(t)<2)
{
t[1]=t[0];
t[0]='0';
t[2]=0;
}
}
int binaryToString(char *from,char *to)
{
FILE *fp;
FILE *out;
fp=fopen(from,"rb");
out=fopen(to,"w");
if(!fp||!out){
printf("error!\n");
return -1;
}
unsigned char c;
int count;
char cc[2];
int size=0;
while((count=fread(&c, 1, 1, fp)) == 1)
{
sprintf(cc,"%x",c);
Fill0(cc);
fwrite(cc,1,2,out);
size++;
}
printf("total:%d",size);
fclose(out);
fclose(fp);
return 0;
}
int stringToBinary(char *from,char *to)
{
FILE *fp;
FILE *out;
fp=fopen(from,"r");
out=fopen(to,"wb");
if(!fp||!out){
printf("error!\n");
return -1;
}
int count;
char cc[2];
int size=0;
int d=0;
while((count=fread(cc, 1, 2, fp)) == 2)
{
sscanf(cc,"%2x",&d);
fwrite(&d,1,1,out);
size++;
}
printf("total:%d",size);
fclose(out);
fclose(fp);
return 0;
}
int main(int argc,char* argv[])
{
if(argc!=4)
{
printf("cmd -tos|tob <srcFile> <destFile>\n");
getchar();
return -1;
}
if(strcmp(argv[1],"tos")==0)
{
binaryToString(argv[2],argv[3]);
}
else if(strcmp(argv[1],"tob")==0)
{
stringToBinary(argv[2],argv[3]);
}
return 1;
}
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define MAXLEN 1024
void Fill0(char t[])
{
if(strlen(t)<2)
{
t[1]=t[0];
t[0]='0';
t[2]=0;
}
}
int binaryToString(char *from,char *to)
{
FILE *fp;
FILE *out;
fp=fopen(from,"rb");
out=fopen(to,"w");
if(!fp||!out){
printf("error!\n");
return -1;
}
unsigned char c;
int count;
char cc[2];
int size=0;
while((count=fread(&c, 1, 1, fp)) == 1)
{
sprintf(cc,"%x",c);
Fill0(cc);
fwrite(cc,1,2,out);
size++;
}
printf("total:%d",size);
fclose(out);
fclose(fp);
return 0;
}
int stringToBinary(char *from,char *to)
{
FILE *fp;
FILE *out;
fp=fopen(from,"r");
out=fopen(to,"wb");
if(!fp||!out){
printf("error!\n");
return -1;
}
int count;
char cc[2];
int size=0;
int d=0;
while((count=fread(cc, 1, 2, fp)) == 2)
{
sscanf(cc,"%2x",&d);
fwrite(&d,1,1,out);
size++;
}
printf("total:%d",size);
fclose(out);
fclose(fp);
return 0;
}
int main(int argc,char* argv[])
{
if(argc!=4)
{
printf("cmd -tos|tob <srcFile> <destFile>\n");
getchar();
return -1;
}
if(strcmp(argv[1],"tos")==0)
{
binaryToString(argv[2],argv[3]);
}
else if(strcmp(argv[1],"tob")==0)
{
stringToBinary(argv[2],argv[3]);
}
return 1;
}