使用vc6.0,从本地txt中读取数据如“1512 16D1”,已经实现的功能是通过CString读取了txt, 并转存到了vector里面去了,并且将vector发一段删一段。想要达到的效果是将“1512 16D1”按照15 12 16 D1发送,出现的问题是发送的结果是1 5 1 2 1 6 D 1这些字符对应的ASCII码,例如1变成了31等等。请问各位大神,该如何实现上述功能,示例代码即可,忘各位大神不吝赐教
调试欢乐多
#include <string.h>
#include <conio.h>
FILE *fi,*fo;
int r;
unsigned int n,c;
long offset;
//-------------------------------------------------------
void main(int argc,char *argv[])
{
if (argc<3) {
cprintf("Hex2Bin srcfile desfile");
return;
}
if ((fi=fopen(argv[1],"rb"))==NULL) {
cprintf("Can not find file %s",argv[1]);
return;
}
if ((fo=fopen(argv[2],"wb"))==NULL) {
fclose(fi);
cprintf("Can not create file %s",argv[2]);
return;
}
n=0;
while (1) {
offset=ftell(fi);
r=fscanf(fi,"%2x",&c);
if (EOF==r) break;//
if (1==r) {
fputc(c,fo);
n++;
} else {//0==r
fseek(fi,offset,SEEK_SET);//因为VC6的Release版及其VC7,8,9,10,...版的fscanf未按约定保持offset不变,所以此处必须恢复offset
r=fgetc(fi);
if (EOF==r) break;//
}
}
fcloseall();
cprintf("OK to Hex2Bin %d bytes.",n);
}
31 32这样的值,希望达到的效果是发送的东西是15 12这样的发,然后读取来验证也是15 12这样的