fread读到数据不代表读成功
来源:互联网 发布:中国进口台湾数据 编辑:程序博客网 时间:2024/04/27 23:47
void encode(FILE *hf)
{
fwrite(&offset, sizeof(offset), 1, hf);
fwrite(&idLen, sizeof(idLen), 1, hf);
fwrite(id.c_str(), 1, idLen, hf);
fwrite(&dataLen, sizeof(dataLen), 1, hf);
}
bool decode(FILE *hf)
{
int a1= fread(&offset, sizeof(offset), 1, hf);
if(a1!=1)
{
return false;
}
int a2= fread(&idLen, sizeof(idLen), 1, hf);
if(a2!=1)
{
return false;
}
id.resize(idLen);
int a3= fread((void*)id.c_str(), 1, idLen, hf);
if(a3!=idLen)
{
return false;
}
int a4= fread(&dataLen, sizeof(dataLen), 1, hf);
if(a4!=1)
{
return false;
}
return true;
}
};
typedef std::list<PackItem> ITEM_LIST;
typedef ITEM_LIST::iterator ITEM_IT;
typedef std::map<std::string,PackItem> ITEM_MAP;
typedef ITEM_MAP::iterator MAP_IT;
BOOL open(LPCTSTR path)
{
_file = _tfopen(path, _T("rb"));
if(_file == NULL)
return FALSE;
DWORD headOffset = 0;
fread(&headOffset, sizeof(headOffset), 1, _file);
fseek(_file, headOffset, SEEK_SET);
while(!feof(_file))
{
PackItem pi;
if(pi.decode(_file))
{
_readItems[pi.id] = pi;
}
}
return TRUE;
{
fwrite(&offset, sizeof(offset), 1, hf);
fwrite(&idLen, sizeof(idLen), 1, hf);
fwrite(id.c_str(), 1, idLen, hf);
fwrite(&dataLen, sizeof(dataLen), 1, hf);
}
bool decode(FILE *hf)
{
int a1= fread(&offset, sizeof(offset), 1, hf);
if(a1!=1)
{
return false;
}
int a2= fread(&idLen, sizeof(idLen), 1, hf);
if(a2!=1)
{
return false;
}
id.resize(idLen);
int a3= fread((void*)id.c_str(), 1, idLen, hf);
if(a3!=idLen)
{
return false;
}
int a4= fread(&dataLen, sizeof(dataLen), 1, hf);
if(a4!=1)
{
return false;
}
return true;
}
};
typedef std::list<PackItem> ITEM_LIST;
typedef ITEM_LIST::iterator ITEM_IT;
typedef std::map<std::string,PackItem> ITEM_MAP;
typedef ITEM_MAP::iterator MAP_IT;
BOOL open(LPCTSTR path)
{
_file = _tfopen(path, _T("rb"));
if(_file == NULL)
return FALSE;
DWORD headOffset = 0;
fread(&headOffset, sizeof(headOffset), 1, _file);
fseek(_file, headOffset, SEEK_SET);
while(!feof(_file))
{
PackItem pi;
if(pi.decode(_file))
{
_readItems[pi.id] = pi;
}
}
return TRUE;
}
fread读到数据不代表读成功,在fread读取失败的时候,缓冲区可能保存的是上一次读到的数据,所以只有判断返回值是否正确
0 0
- fread读到数据不代表读成功
- 完美不代表成功
- 好点子不代表创业能成功
- 数据块读函数fread
- 李开复:好点子不代表创业能成功(转)
- 书单【买过不代表读过】
- 网站安全认证不代表数据已经加密
- 从EXCEL数据读到数据库
- 测试HDFS读性能-读到本地缓存,不写硬盘的性能
- 存在,不代表合理
- 离去不代表失去
- 错过,不代表失败
- Qt 实时读串口数据,并将读到的数据从网口发送出去
- 把数据库中的数据读到EXCEL中
- 写入读到二进制数据到DB
- UE4将图片数据读到贴图中
- 成功代表过去,能力代表现在,学习决定未来
- 昨天不代表今天,今天不代表明天!
- nodejs之async异步编程
- 天干年月算法java
- 对hibernate的学习之用配置文件和annotation配置的区别
- 静态成员变量和静态成员函数
- Java汉字转拼音
- fread读到数据不代表读成功
- iOS动画 CABasicAnimation
- websocket 同步发数据 、异步发数据
- 理解MVC,MVP和MVVM设计模式
- ]linux学习之centos6.6——(2)——终端、初识shell和常用指令
- 设计模式之抽象适配器模式08
- 【MVVM】 Android Data Binding语法解析(二)
- 这,就是好的文案
- DB主从一致的 四种架构