24小时热门版块排行榜    

查看: 1905  |  回复: 6

cw277

木虫 (正式写手)

[交流] 【求助】请问一下 c++有没有按位读取文件的方法或者语句? STL里有没有这样的功能? 已有5人参与

1.像matlab : I=fread(fid,N,'ubit1');  'ubit1' 是 按1bit 读取文件  

2. 能不能把文件读到一个vector里 ,怎么实现?

[ Last edited by cw277 on 2010-6-1 at 09:11 ]
回复此楼
感谢生活让我慢慢学会控制自己的情绪,学会包容与忍耐,学会不再去期待
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚


余泽成(金币+1):谢谢参与应助! 2010-06-01 08:59:35
cw277(金币+1):谢谢~~ 2010-06-01 19:25:29
按位读取?C/C++没有咯。
其实,文件存贮,按位的话,不论空间效率还是时间效率都是得不偿失的。

文件存贮,最好是按字节(Byte),或者按字(Word),这是基本单位。
实际程序读、写文件,最好是一大块数据。
例如,有一个数组,有100个元素,
那就一次(一个语句)写入文件,而不要一个一个地(100个语句)写入。
读也是一次(一个语句),一下子都读出来。

至于指针变量,你既不应该把它写入文件,也不应该从文件读出来。
你所能做的,是把指针所指的那个东西写入文件;
读出时,先准备好指针,再为指针分配变量,足够容纳你要读的那个东西,然后再读。

按照这个基本过程,一个矢量该怎么读写,你应该懂的。

[ Last edited by yalefield on 2010-6-1 at 10:18 ]
2楼2010-06-01 01:53:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)


resonant(金币+1):感谢参与。 2010-06-01 15:04:29
cw277(金币+1):谢谢!如果能举个例子, 把一个文件按字节读到vecotr里就更好 ! 2010-06-01 19:26:29
按位读取本身是不能实现的,即使是MATLAB也是假实现。方法是按字节读取,然后切分成位。所以C++、C也可以用同样的方法实现。

vector的话,可以读到一个buffer里,然后append到vector。
3楼2010-06-01 14:04:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)


wangen994(金币+1):感谢参与应助 2010-06-05 08:29:48
不明白楼主所谓的按字节读取是什么意思,不过对楼主来说一次读取一个字节和一次读取100个字节有什么区别呢?
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
4楼2010-06-02 09:20:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

★ ★
余泽成(金币+2):谢谢分享经验!外国老板还是大方些,呵呵! 2010-06-02 09:55:10
引用回帖:
Originally posted by magic7004 at 2010-06-02 09:20:29:
不明白楼主所谓的按字节读取是什么意思,不过对楼主来说一次读取一个字节和一次读取100个字节有什么区别呢?

在现在的计算机系统上,

一次读取一个字节,和一次读取100个字节,确实没有区别,
因为现在都是“一大块一大块”地读取。这一大块,也许是512个字节咯。

但是,100次读取一个(相同或者不同的)字节,与一次读取100个字节,那还是有区别地咯。

缓冲技术也许能帮忙,不过,那是在读取连续字节,或者时间上连续。
如果一会儿读一个字节,一会儿再读一个字节,OMG,I'm going to kill U.

俺曾试过,用VC++ 1.5的CString处理英汉词典,大约2、3秒。
用一个本科生写的“慢四步”代码(名字是俺起的,因为它向前读1、2个字节,再后退3、4个字节),2、3个小时也没折腾完。

为了俺这几行代码,澳大利亚的小老板给了俺3000元。
5楼2010-06-02 09:41:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

C++里面不是有输入流和输出流。。
好好学习,天天向上。
6楼2010-06-04 19:56:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhenhai308

木虫 (正式写手)

某某


余泽成(金币+1):谢谢参与应助! 2010-07-03 18:49:44
c++中读取文件时,可以先把文件中的一行内容由文本转化为你所需要的数据类型,像char,int等等,然后在放到vector里面。

至于按位读取,是不是说一个字节,每次读一位,就要读8次,这个貌似没有!!
7楼2010-07-03 18:34:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cw277 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +3 大火山小火山 2026-03-16 4/200 2026-03-16 16:47 by houyaoxu
[考研] 本人考085602 化学工程 专硕 +12 不知道叫什么! 2026-03-15 14/700 2026-03-16 16:45 by 我的船我的海
[考研] 283求调剂 +10 小楼。 2026-03-12 14/700 2026-03-16 16:08 by 13811244083
[考研] 070303一志愿西北大学学硕310找调剂 +5 d如愿上岸 2026-03-12 8/400 2026-03-16 15:19 by peike
[考研] 一志愿华中师范071000,325求调剂 +6 RuitingC 2026-03-12 6/300 2026-03-16 14:50 by 可淡不可忘
[考研] 304求调剂 +4 素年祭语 2026-03-15 4/200 2026-03-16 09:42 by 闲人终南山
[考研] 290求调剂 +5 孔志浩 2026-03-12 10/500 2026-03-16 09:01 by 余晖&
[考研] 274求调剂 +4 时间点 2026-03-13 4/200 2026-03-15 15:29 by Rambo13
[考研] 中科大材料专硕319求调剂 +3 孟鑫材料 2026-03-13 3/150 2026-03-14 18:10 by houyaoxu
[考研] 环境调剂 +6 晓看天暮看云 2026-03-09 6/300 2026-03-14 01:16 by JourneyLucky
[考研] 0856材料与化工309分求调剂 +6 ZyZy…… 2026-03-10 6/300 2026-03-14 00:38 by JourneyLucky
[考研] 327求调剂 +4 Ffff03 2026-03-10 4/200 2026-03-14 00:17 by JourneyLucky
[考研] 复试调剂 +9 Copy267 2026-03-10 9/450 2026-03-13 23:45 by userper
[考研] 314求调剂 +7 无懈可击的巨人 2026-03-12 7/350 2026-03-13 15:40 by JourneyLucky
[考研] 308求调剂 +3 是Lupa啊 2026-03-12 3/150 2026-03-13 14:30 by 求调剂zz
[考研] 283求调剂,材料、化工皆可 +8 苏打水7777 2026-03-11 10/500 2026-03-13 09:06 by Linda Hu
[考研] 321求调剂(食品/专硕) +3 xc321 2026-03-12 6/300 2026-03-13 08:45 by xc321
[考研] 420求调剂 +4 莫向外求11 2026-03-10 6/300 2026-03-12 14:41 by ruiyingmiao
[考研] 085600 材料与化工 295 求调剂 +10 dream…… 2026-03-10 12/600 2026-03-12 13:46 by dream……
[考研] 一志愿:武汉理工,材料工程,英二数二 总分314 +3 2202020125 2026-03-10 4/200 2026-03-10 13:54 by xiongyaxuan
信息提示
请填处理意见