返回信息流需要对特定格式的文件进行分析,文件的格式是固定的,要用c++对文件进行访问,能够做到按字节访问,这样就能提取文件的各个字段了。
怎么去按字节访问呢?期待解答,小弟先谢过了~~
这是一条镜像帖。来源:北邮人论坛 / cpp / #44250同步于 2010/9/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
(期待大牛)c++读取文件的问题
moodyt
2010/9/26镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
ofstream file;
file.open ("example.bin", ios::out | ios::app | ios::binary);
或 ofstream file ("example.bin", ios::out | ios::app | ios::binary);
ios::in 为输入(读)而打开文件
ios::out 为输出(写)而打开文件
ios::ate 初始位置:文件尾
ios::app 所有输出附加在文件末尾
ios::trunc 如果文件已存在则先删除该文件
ios::binary 二进制方式
【 在 pain 的大作中提到: 】
: ofstream file;
: file.open ("example.bin", ios::out | ios::app | ios::binary);
: 或 ofstream file ("example.bin", ios::out | ios::app | ios::binary);
: ...................
re,用C++标准库
或者用C 标准库的fopen和fread函数
通吃windows和linux
首先,得知道该文件的编码存储格式,像有ansii,utf-8,utf-16等,其中utf-8又分带BOM和无BOM格式的,utf-16在Windows下有大端和小端存储格式;
其次,要想正确取出每个字符,得把相应的编码头给忽略掉;
最后,判断中英文并按编码格式取得相应字符,若是utf-16则统一都取两个字节;utf-8或ascii码的话,中文区两个字节,(中文简体往往在高端字节范围在0x80~0xfe之间,繁体记不太清楚了),英文取一个字节就OK。