我从硬件获取数据然后按照ULONG型存入一个txt文档,然后我想再从这个文档中以ULONG形式读出来。可是总有错。请知道的帮帮忙,纠结几天了。ReadFile用过,CFile的Read耶用过。都不行。不知道怎么做了。

解决方案 »

  1.   

    你怎么保存的?
    如果保存时用fwrite,读就要用fread;
    如果保存时用fprintf,读就要fscanf
      

  2.   


    这个肯定是对应的。保存的格式也是一样的。还有一个问题:怎样将字符型数组转为ULONG型数组呢?
      

  3.   

    字符数组转成ULONG?看你的需求了。比如每个char(1字节)扩展到ULONG(4字节)
    写到文件是序列化的,你清楚流的每个字节的意义就行。
      

  4.   


    不,是将字符数组的每四个字节的数一起转为ULONG型的。因为刚才那个问题,如果我用字符型来读取的话出现的是乱码,那么我是希望将获得的乱码再转为ULONG型的。不然直接用ULONG型的貌似无法读取。
      

  5.   

    4字节当成个ULONG也行的。关键是你的文件格式定义啊!
      

  6.   

    不晓得楼主能成功读取文件内容不?我还以为是单纯的字符类型转换问题呢!我先前提供的代码也得是你提取出每个字节信息并存入数组里头了才能用。这个应该不是很难吧。呵呵直接从我的代码里复制个看看:void String2Hex(const std::string &str, unsigned char *buf, unsigned int &len)
    {
    unsigned char OneData = 0;
    len = 0;
    int ChL = 0;
    for (int i = 0; i < str.length(); i++)
    {
    char C = static_cast<char>(str.at(i));
    if (C == ' ')
    {
    if (ChL != 0)
    {
    buf[len++] = OneData;
    ChL = 0;
    }
    continue;
    }

    OneData <<= 4;
    OneData += Char2Hex(C);
    ChL++;
    if (ChL == 2)
    {
    buf[len++] = OneData;
    ChL = 0;
    }
    }
    }
      

  7.   

    直接将文件里的二进制数据读入 ldataULONG ldata;
    file.Read(&ldata,sizeof(ULONG);
      

  8.   

    我都是这样,将整个 struct 都存到文件里去得。