五、文件操作

1.文本文件

(1)写文件

程序运行时产生的数据都属于临时数据,程序一旦结束就会被释放

通过文件可以将数据持久化

C++中对文件操作需要包含头文件<fstream>

文件类型分为两种:

文本文件:文件以文本的ASCII码形式存储在计算机中

二进制文件:文件以文本的二进制形式存储在计算机中,用户读不懂

操作文件的三大类:(C++中的标准类)

ofstream:写操作   //以此类生成的文件对象只能写

ifstream:读操作   //以此类生成的文件对象只能读取

fstream:读写操作  //以此类生成的文件对象既可以写也可以读取

写文件的步骤:

包含头文件  #include <fstream>

创建流对象  oftream ofs;

打开文件   ofs.open(”文件路径”,打开方式);(文件名字.后缀扩展名)

写数据   ofs << “写入的数据”;

关闭文件  ofs.close();

文件打开方式:

打开方式

解释

ios::in      **

为读文件而打开文件

ios::out     **

为写文件而打开文件

ios::ate

初始位置:文件尾

ios::app

追加方式写文件

ios::trunc

如果文件存在先删除,再创建

ios::binary

二进制方式

注意:

文件打开方式可以配合使用,利用  |  操作符

例如:用二进制方式写文件  ios::binary | ios::out

生成新文件的话,没有指定文件的路径,会与程序保存在一个文件夹目录中

(2)读文件

包含头文件  #include <fstream>

创建流对象  iftream ifs;

打开文件并判断是否打开成功

ifs.open(”文件路径”,打开方式);(文件夹名字.后缀扩展名)

读取数据   四种方式读取

关闭文件  ofs.close();

四种读取方式

第一种

char buf[1024] = {0};

while (ifs >> buf)

{

cout << buf << endl;

}

第二种

char buf[1024] = {0};

while(ifs.getline(buf,sizeof(buf)))

{cout << buf << endl;

}

第三种

string buf;

while(getline(ifs,buf))

{cout << buf << endl;}

第四种

char c;

while( (c = ifs.get() != EOF))   //EOF是end of file,文件尾部

{cout << c ;}

利用is_open函数判断文件是否打开成功

2.二进制文件

(1)写文件

以二进制方式对文件进行读写操作

打开方式指定为ios::binary

二进制方式写文件主要利用流对象调用成员函数write

函数原型

ostream& write( const char * buffer ,int len);

参数解释:字符指针buffer指向内存中一段存储空间,len是读写的字节数

Person p = {"张三",18};

     ofs.write((const char*)&p,sizeof(Person));  //把p强制转换成char*类型

(2)读文件

二进制方式读文件主要利用流对象调用成员函数read

函数原型

istream& read( const char * buffer ,int len);

参数解释:字符指针buffer指向内存中一段存储空间,len是读写的字节数

Person p = {"张三",18};

     ifs.write((char*)&p,sizeof(Person)); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值