#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
;
}