ReadFile读取ULONG型数据没有问题吧? 我从硬件获取数据然后按照ULONG型存入一个txt文档,然后我想再从这个文档中以ULONG形式读出来。可是总有错。请知道的帮帮忙,纠结几天了。ReadFile用过,CFile的Read耶用过。都不行。不知道怎么做了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你怎么保存的?如果保存时用fwrite,读就要用fread;如果保存时用fprintf,读就要fscanf 这个肯定是对应的。保存的格式也是一样的。还有一个问题:怎样将字符型数组转为ULONG型数组呢? 字符数组转成ULONG?看你的需求了。比如每个char(1字节)扩展到ULONG(4字节)写到文件是序列化的,你清楚流的每个字节的意义就行。 不,是将字符数组的每四个字节的数一起转为ULONG型的。因为刚才那个问题,如果我用字符型来读取的话出现的是乱码,那么我是希望将获得的乱码再转为ULONG型的。不然直接用ULONG型的貌似无法读取。 4字节当成个ULONG也行的。关键是你的文件格式定义啊! 不晓得楼主能成功读取文件内容不?我还以为是单纯的字符类型转换问题呢!我先前提供的代码也得是你提取出每个字节信息并存入数组里头了才能用。这个应该不是很难吧。呵呵直接从我的代码里复制个看看: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; } }} 直接将文件里的二进制数据读入 ldataULONG ldata;file.Read(&ldata,sizeof(ULONG); 我都是这样,将整个 struct 都存到文件里去得。 C++Primer成员访问操作符一节的一段话求解释 vc 串行通信 拉伸窗口时实时获取窗口大小尺寸 什么是命令行参数 双缓冲贴Png图问题! 关于保存clistctrl数据 菜鸟在线求教? 一个22字节长数据流的数据转化(在线恭候,立即给分) 关于文件复制的问题 新手帖,这个BUG是怎么回事啊?查不到问题 MFC中CListCtrl控件显示数据库信息 关于socket的receive
如果保存时用fwrite,读就要用fread;
如果保存时用fprintf,读就要fscanf
这个肯定是对应的。保存的格式也是一样的。还有一个问题:怎样将字符型数组转为ULONG型数组呢?
写到文件是序列化的,你清楚流的每个字节的意义就行。
不,是将字符数组的每四个字节的数一起转为ULONG型的。因为刚才那个问题,如果我用字符型来读取的话出现的是乱码,那么我是希望将获得的乱码再转为ULONG型的。不然直接用ULONG型的貌似无法读取。
{
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;
}
}
}
file.Read(&ldata,sizeof(ULONG);