C++文件操作

C++提供了三种类型来从文件中进行操作

  • ofstream:将流中的数据写入到文件
  • ifstream:将文件的数据读入到流中
  • fstream:对文件进行读和写操作

其中,ofstream公有继承自ostreamifstream公有继承自istreamistreamostream共同派生iostreamfstream公有继承iostream,这三个类都包含在头文件fstream中。

下面是一个对文件操作的简单示例

#include<iostream>
#include<fstream>
using namespace std;
int main(){
	ofstream myfile;	//创建一个未绑定的文件流
	myfile.open("test.txt");	//打开同路径下的文件,没有则新建
	myfile<<"hello world!"<<endl;	//写入文件
	myfile.close();	//关闭文件
	return 0;
}

打开文件
进行文件读写之前,都要先打开文件,这里的打开文件实际上是将一个文件流对象绑定到一个文件中,绑定了之后就可以对文件进行读写了,可以通过以下两种方式对文件进行绑定

//方法一
ofstream myfile;	
myfile.open("test.txt");	

//方法二
ofstream myfile("test.txt");

方法一中的open函数是属于fstream,ifstream,fstream中的成员函数,该函数原型为

void open(const char *filename, ios::openmode mode);

其中第一个参数为文件绑定的文件名,第二个参数为打开文件的模式。ifstream默认是in模式,ofstream默认是out模式,一共存在以下六种不同的打开文件模式

模式功能
in以读方式打开文件
out以写的方式打开文件
app每次写操作之前定位到文件的末尾
ate打开文件之后立即定位到文件末尾
trunc如果该文件已经存在,其内容将在打开文件之前被截断
binary以二进制打开文件

以上模式有的可以同时使用,例如fstream默认同时使用了in和out两种模式。指定文件打开的模式存在以下限制

  • out模式只能由fstream和ofstream打开
  • in模式只能由fstream和ifstream打开
  • 以out模式打开的文件会抛弃文件已经含有的数据,可以加入app模式

写入文件
打开了一个文件之后,可以使用流插入运算符( << )向文件写入信息,就如同使用该运算符输出信息到屏幕上一样。唯一不同的是,在这里您使用的是 ofstream 或 fstream 对象,而不是 cout 对象。

读取文件
同样用流提取运算符(>>)从文件中读取信息,就好比使用该运算符从键盘输入信息到屏幕上一样,这里就是把 cin 对象换成了 ifstream 或者 fstream 对象。

下面是一个文件读写的实际例子

#include<iostream>
#include<fstream>
#include<string>
using namespace std;

int main(){
	ifstream in("poet.txt");
	ofstream out("test.txt");
	
	string line;
	while(getline(in,line)) {
		out<<line<<endl;
	}
	//记得关闭文件
	in.close();
	out.close();
	return 0;
}

文件读取

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值