[求助]一个按位读取文件信息问题

小野兽 2011-03-31 08:33:17
今天琢磨了很久没想明白应该怎么定义。问题是这样:假设有一个文件叫“1.dat”,用TXT改扩展名来的,里面有"ABCDE"五个字母,也就是“41 42 43 44 45”,现在需要一种方法,来“按位读取”,每次读取一字节,存进一个缓冲区,缓冲区是一个长度为8的数组,比如读进“41”,缓冲区数组里就是{0,1,0,0,0,0,0,1},请问这种缓冲区的结构如何定义呢?如何输出呢?希望高手能以读进一个“41”为例子帮忙看一下,感激不尽!


#include <stdio.h>

struct BUFFER
{
//此处不知如何定义
} *buffer;

void main()
{
FILE *fp;
fp = fopen("1.dat","wb+");

fread(buffer,1,1,fp); //只读一进第一个“41”

//func(&buffer); 这里进行相关操作,先忽略

//这里输出缓冲区,不知如何输出

fclose(fp);
}
...全文
91 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
小野兽 2011-03-31
[Quote=引用 8 楼 delphiwcdj 的回复:]
或者这个
[/Quote]
多谢了!!!
回复
qq120848369 2011-03-31
一个字节读进来,它的二进制就是0100 0001了,不必再转存之类的,想转的话写一个函数用来将10进制转2进制就是了.
回复
delphiwcdj 2011-03-31
回复
delphiwcdj 2011-03-31
或者自己定义数组存放
string strval("1100");
bitset<32> bitvec4(strval);
参考

回复
小野兽 2011-03-31
[Quote=引用 3 楼 delphiwcdj 的回复:]
你先把数据读进来然后再把它转化为二进制,比如用stl的bitset
[/Quote]

抱歉我初学,还没学到STL,求给一段实现代码吧
回复
delphiwcdj 2011-03-31
[Quote=引用 2 楼 xiaoyeshou0725dx 的回复:]

引用 1 楼 delphiwcdj 的回复:
纠正下 A 是 65

额……不要在乎大小写啦……
[/Quote]
小写 a 是 97
回复
Meteor_Code 2011-03-31
[Quote=引用 1 楼 delphiwcdj 的回复:]

纠正下 A 是 65
[/Quote]
人家说的是16进制呗,呵呵
回复
delphiwcdj 2011-03-31
你先把数据读进来然后再把它转化为二进制,比如用stl的bitset
回复
小野兽 2011-03-31
[Quote=引用 1 楼 delphiwcdj 的回复:]
纠正下 A 是 65
[/Quote]
额……不要在乎大小写啦……
回复
delphiwcdj 2011-03-31
纠正下 A 是 65
回复
相关推荐
发帖
C语言
创建于2007-09-28

6.4w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2011-03-31 08:33
社区公告
暂无公告