简单问题-如何从文件中读出2进制的数并转换成int

potlee 2007-05-18 12:21:37
文件中的数是二进制的,怎么把它读出来,并转成十进制的int呢?谢谢。
...全文
261 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacknes009 2007-05-22
  • 打赏
  • 举报
回复
还是用标准C++的流吧!iostream比较好
#include <vector.h>
#include <fstream.h>
ifstream input;
input.open("c:\\aa.txt",ios::in | ios::binary);
if(!input)
{
return;
}
BYTE CH = 0x00;
int cc = 0;
vector<int>v_int;
v_int.clear();
while(!input.eof())
{
input.get(CH);
cc = CH;
v_int.pushback(cc);
}
input.close();
v_int里面就是你存放的数据
liuyaoyou 2007-05-18
  • 打赏
  • 举报
回复
无论你读文件的缓冲区是char、short、int、double还是long型,如char *buf=(char *)malloc(sizeof(char)),只要你把*buf强制转换一下就可以了。
Y___Y 2007-05-18
  • 打赏
  • 举报
回复
用ReadFile读,然后强制转换为整形
i_love_pc 2007-05-18
  • 打赏
  • 举报
回复
定义整形数据缓冲区,然后读取文件填充
EagleFew 2007-05-18
  • 打赏
  • 举报
回复
可以使用C/C++ 的库函数openfile 函数二进制方式打开!

也可以使用API CreateFile 等函数打开

也可以使用FileStream 类打开

二,三 读取上来的就是二进制的编码,以字节为单位

转换的时候Win32 中的整型是32位的也就是4个字节,注意一般现在的计算机都是 低字节在前高字节在后的.
sczyq 2007-05-18
  • 打赏
  • 举报
回复
Byte buf[4];



int n = 0;

for (int i=0, i<4; i++)
n += buf[i] * 256^i;
BenLeak 2007-05-18
  • 打赏
  • 举报
回复
int iData;
int iFile;

// write
iData = 12;
iFile = FileCreate("1.dat");
if(-1 != iFile)
{
FileWrite(iFile, &iData, sizeof(int));
FileClose(iFile);
}

// read
iFile = FileOpen("1.dat", fmOpenRead);
if(-1 != iFile)
{
FileRead(iFile, &iData, sizeof(int));
FileClose(iFile);
ShowMessage(IntToStr(iData));
}
potlee 2007-05-18
  • 打赏
  • 举报
回复
麻烦给一小段例子吧,谢了。
过客猫2022 2007-05-18
  • 打赏
  • 举报
回复
还是用标准C++的流吧!iostream比较好

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧