使用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等等。请问各位大神,该如何实现上述功能,示例代码即可,忘各位大神不吝赐教

解决方案 »

  1.   

    你这不是对的么? 读的就是char ‘1’ 不就是31么 把读的按char写进txt文件 不就是1了么 
      

  2.   

    你定义的vector是什么类型的?
      

  3.   

    仅供参考:#include <stdio.h>
    #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);
    }
      

  4.   

    可以通过strtol方法
      

  5.   

    vector是BYTE型,然后转成CBytearray发送的,问题是vector的每个元素是1   5    1    2这样一个一个的,然后发送到板子里面之后再读出来就是31    35       
        31     32这样的值,希望达到的效果是发送的东西是15   12这样的发,然后读取来验证也是15    12这样的