加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于C++磁盘文件的读写操作[转]

(2012-06-18 08:20:33)
标签:

杂谈

分类: CPP程序设计

关于C++磁盘文件的读写操作

 

一、       文本文件的读写

方法-1:内外存一次传送若干个字符

:输出文件流对象<<待写的字符串; 参见例-1

如 ofstream output;  或fstream output;

output.open(“sf1.dat”,ios::out);

output <<“abcd123”;

读:输入文件流对象·getline(char *buf,int num); 参见例-2

                                  参数 char *buf---内存地址

参数int num—字符个数

ifstream ci;  或fstream ci;

 ci.open(“sf1.dat”,ios::in);

 char s[10];

 ci.getline(s,5);

 

方法-2:内外存一次只传送一个字符

 

写:输出文件流对象·put( ) 参见例-3

如 ofstream output;  或fstream output;

output.open(“sf1.dat”,ios::out);

output .put(‘a’);

 

读:输入文件流对象·get( ); 参见例-3

 如 ifstream ci;  或fstream ci;

 ci.open(“sf1.dat”,ios::in);

 char s;

 ci.get(s);

 

二、       二进制文件的读写(参见例-4)

1、 写:使用ostream类的write()函数

            ostream &write(char *buf, int num);

从指针buf所指的缓冲区中取num个字节插入到二进制文件输出流中。

 

2、读:使用istream类的read()函数

istream &read(char *buf, int num);

从二进制文件输入流中读取num个字节放入指针buf所指的缓冲区中。

 

三、       随机读写

为了增加对文件访问的灵活性,C++在类istream和类ostream中各自定义了几个用于控制文件指针的成员函数,从而通过文件指针实现对文件的随机访问。

 

1.      istream类提供如下3个成员函数用来对读指针进行控制:

  

▲istream::seekg(<流中位置>);   将读指针调整到文件中某个位置上

 

▲istream::seekg(<偏移量>,<参照位置>);

 

▲streampos long  istream::tellg();无参数,其返回值类型为streampos long,该值表示当前读指针的位置距流(文件)开始位置的字节数。

       其中:

           ①<流中位置>与<偏移量>均以字节为单位;

           ②<参照位置>为ios类中的枚举常量,即

                      ios::cur -----相对于当前读指针所指定的位置;

                      ios::beg----相对于流(即文件)的开始的位置;

                      ios::end------相对于流(即文件)的结尾处。

 

2.      ostream类提供如下3个成员函数用来对写指针进行控制:

 

▲ostream::seekp(<流中位置>);   将读指针调整到文件中某个位置上

 

▲ostream::seekp(<偏移量>,<参照位置>);

 

▲    streampos long  ostream::tellp();

 

这三个函数的含义及参数意义同前面三个函数的含义及参数意义相同,只是它们被用来控制写指针。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有