关天文件读写。
我想用二进制读取文件的“两个字节”,然后把它转换成int型。怎么实现?
用fread()怎么写,或用别的什么方法也行!
我想用二进制读取文件的“两个字节”,然后把它转换成int型。怎么实现?
用fread()怎么写,或用别的什么方法也行!
解决方案 »
- VS2010 类视图看不到类
- 小弟问下怎么把视频读到vc++中?
- 如何将一个已知长度和格式的字符串拆分成一个数组?
- 有关installshield9安装目录问题
- 如何用::BitBlt(hdc, 0,0,36,36, hdcBitmap, 0,0, SRCCOPY)绘制位图?
- MFC ODBC+SQL server2000的问题。
- Windows Media Encoder SDK 9 中遇到的问题?
- 请问哪儿有《Visual C++实践与提高--数据库篇》的下载???感激!!!
- 请问如何实现悬停窗体?
- 请问怎样才能查看dll中提供的函数接口?
- 请大家帮我看看一个简单的问题,我却解决不了(周末愉快)
- ADO的,来帮个忙,谢谢!
fread(&w,sizeof(w),1,fp);
只要读入内存,一切都好办,
比如你有一个指针p,
将二进制读到p所指的内存。
接下来怎么做呢?
第一步:须要一个int型变量i,
第二步:i是四字节的,把i的最后两字节设为0:i = 0;
第三步:把p的内容直接送入i的地址:memcpy((void *)&i, p, 2);以上方法并不对所有系统通用,
因为有些系统的字节顺序与我们用的是相反的。
既然文件内容是你知道的,i变量也是你自己控制的,
以上方法直接使用便是。
int reasult;
short w;
fread(&w,sizeof(w),1,fp);
用WORD类型会不能处理负数。
然后
reasult=w;
即可。
或者直接用整型来获取数据:
int data=0;//必须要初始化为0;
fread(&data,2,1,fp);