- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C中随机存取文件的处理
C++中随机存取文件的处理
学习各种外挂制作技术,马上去百度搜索 魔鬼作坊 点击第一个站进入、快
速成为做挂达人。
在本文中,我们所讲的是怎样使用C++中的随机存取文件。除了最简单的应用程序以外,大
多数程序都需要读写文件。或许只是为了读取一个配置文件,一个文本解析器或更为复杂的
什么东西。和许多的C++程序一样,有些人更喜欢用原先的C语言方式处理问题,如果你恰
好也是这些人中的一员,就应该学习一下这篇文章。
基本的文件操作有
·fopen——打开文件,指定文件以怎样的方式打开(读/写)以及类型(二进制/文本)
·fclose——关闭已经打开的文件
·fread——读取文件
·fwrite——写文件
·fseek/fsetpos——将文件指示器转移到文件中的某一地方
·ftell/fgetpos——可以告诉你文件指示器所在的位置
文件有两种基本类型:文本和二进制。在这两者之中,通常二进制类型是较容易解决的。
由于在文本中处理随机存取并不常用,我们会在本文中重点关注二进制文件的处理。上面列
出的操作中的前四项可用于文本文件和随机存取文件。后面的两项则仅用于随机存取。
随机存取意味着我们可以在文件的任意部分之间进行切换,且可以从中读写数据而不需
要通读整篇文件。
二进制文件
二进制文件是任意长度的文件,它保存有从0到0xff(0到255)不等的字节值。这些字
节在二进制文件中没有任何意义,与此不同的是,在文本文件中,值为13就意味着回车,10
意味着换行,26意味着文件结束,而读取文本文件的软件要能够解决这些问题。
在现在的术语中,我们将二进制文件称为包含了字节的字符流,大多数语言倾向于将其
理解为字符流而不是文件。重要的部分是数据流本身而不是其来源。在C语言中,你能从文
件或数据流方面来考虑数据。或者,你可以将其理解为一组长的数组。通过随机存取,你可
以读写数组的任意部分。
例一:
// ex1.c : Definestheentrypoint fortheconsoleapplication.
//
#include stdio.h
#include string.h
#include windows.h
int FileSuccess(FILE* handle,const char* reason,const char* path) {
OutputDebugString(reason);
OutputDebugString(path );
OutputDebugString( Result : );
if (handle==0)
{
OutputDebugString(Failed);
return0;
}
else
{
OutputDebugString(Suceeded);
return1;
}
}
int main(int argc,char* argv[])
{
constchar* filename=test.txt;
constchar* mytext=Once uponatime therewere threebears.;
int byteswritten=0;
FILE* ft= fopen(filename,wb);
if (FileSuccess(ft,Opening File:,filename)) {
fwrite(mytext,sizeof(char),strlen(mytext),ft);
fclose(ft );
}
printf(lenofmytext = %i,strlen(mytext));
return0;
}
这段代码显示了一个简单的打开待写的二进制文件,文本字符(char*)会写入该文件。通
常你会使用文本文件但是笔者想证明你可以向二进制文件写入文本。
// ex1.c
#include stdio.h
#in
您可能关注的文档
- 7水泥抗压夹具校验方法.doc
- 8批量增量应用.pdf
- 9段设备管理工程师.pdf
- 908工程.doc
- Abaqus 课程报告 自行车桁架 刘刚.doc
- ABAQUS钢管混凝土建模 无水印.pdf
- ABAQUS中混凝土本构模型用于模拟结构静力行为的比较研究_聂建国.pdf
- Ansys教程基本分析过程L16-nonlin.ppt
- 5.12汶川大地震感人故事.pdf
- AVO的内涵与外延.pdf
- 中国水稻研究所水稻种质资源中期库建设项目报告表.pdf
- 全自动X射线轮胎检测系统建设项目报告表.pdf
- 桐庐县前溪流域治理工程报告表.pdf
- 年产34万吨瓶装纯净水高速生产线升级项目报告表.pdf
- G2531杭州至上饶高速公路(杭淳开高速公路)杭州中环至浙赣界(杭州段)报告书.pdf
- 2025年云南省中考历史真题含答案.docx
- 广东省大湾区2024-2025学年高一下学期7月期末考试政治试题含答案.pdf
- 陕西省汉中市2024-2025学年高二下学期期末质量检测含答案(9科试卷).pdf
- 福建省南平市2024-2025学年第二学期高二下期末质量检测试卷含答案(9科试卷).pdf
- 河北省石家庄2024-2025学年高二下学期期末教学质量检测含答案(9科试卷).pdf
文档评论(0)