C++中随机存取文件的处理[VC/C++编程]
本文“C++中随机存取文件的处理[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
和很多的C++程序一样,有些人更喜好用原先的C语言方法处理问题,假如你刚好也是这些人中的一员,就应当学习一下这篇文章.
基本的文件操作有
◆fopen——翻开文件,指定文件以怎样的方法翻开(读/写)以及范例(二进制/文本)
◆fclose——关闭已经翻开的文件
◆fread——读取文件
◆fwrite——写文件
◆fseek/fsetpos——将文件指导器转移到文件中的某一地方
◆ftell/fgetpos——可以奉告你文件指导器所在的位置
文件有两种基本范例:文本和二进制.在这二者之中,普通二进制范例是较简单办理的.由于在文本中处理随机存取并不常用,我们会在本文中重点关注二进制文件的处理.上面列出的操作中的前四项可用于文本文件和随机存取文件.背面的两项则仅用于随机存取.
随机存取意味着我们可以在文件的肆意部份之间举行切换,且可以从中读写数据而不需求通读整篇文件.
二进制文件
二进制文件是肆意长度的文件,它保存有从0到0xff(0到255)不等的字节值.这些字节在二进制文件中没有任何意义,与此差别的是,在文本文件中,值为13就意味着回车,10意味着换行,26意味着文件完毕,而读取文本文件的软件要可以办理这些问题.
在目前的术语中,我们将二进制文件称为包含了字节的字符流,大大都语言偏向于将其理解为字符流而不是文件.重要的部份是数据流本身而不是其根源.在C语言中,你能从文件或数据流方面来考虑数据.大概,你可以将其理解为一组长的数组.通过随机存取,你可以读写数组的肆意部份.
例一:
// ex1.c : Defines the entry point for the console application.
//
#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");
return 0;
}
else
{
OutputDebugString("Suceeded");
return 1;
}
}
int main(int argc, char * argv[])
{
const char * filename="test.txt";
const char * mytext="Once upon a time there were three bears.";
int byteswritten=0;
FILE * ft= fopen(filename, "wb");
if (FileSuccess(ft,"Opening File: ", filename)) {
fwrite(mytext,sizeof(char),strlen(mytext), ft);
fclose( ft );
}
printf("len of mytext = %i ",strlen(mytext));
return 0;
}
这段代码显示了一个简单的翻开待写的二进制文件,文本字符(char*)会写入该文件.普通你会利用文本文件但是笔者想证明你可以向二进制文件写入文本.
// ex1.c
#include < stdio.h>
#include < string.h>
int main(int argc, char * argv[])
{
const char * filename="test.txt";
const char * mytext="Once upon a time there were three bears.";
int byteswritten=0;
FILE * ft= fopen(filename, "wb") ;
if (ft) {
fwrite(mytext,sizeof(char),strlen(mytext), ft) ;
fclose( ft ) ;
}
printf("len of mytext = %i ",strlen(mytext)) ;
return 0;
}
以上是“C++中随机存取文件的处理[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |