由ifstream想到的

本文深入解析了C++中的流类及其在文件I/O操作中的应用,详细介绍了插入器(<<)和析取器(>>)运算符的使用方法,以及如何通过ifstream和ofstream进行文件读写。同时,文章还介绍了getline函数用于逐行读取文本文件,为读者提供了丰富的实践案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:

1、插入器(<<)

  向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n';就表示把字符串"WriteStdout"和换行字符('\n')输出到标准输出流。

2、析取器(>>)

  从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。

 

 

ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;

 

ifstream

ifstream provides an interface to read data from files as input streams.

 

stringstream

stringstream provides an interface to manipulate strings as if they wereinput/output streams.

 

Getline函数

用getline读取整行文本

Getline 可接受两个参数:一个输入流对象和一个string对象。getline从输入流的下一行读取,并保存读取的内容到string中,不包括换行符。即遇到换行符就停止读入并返回。如果第一个字符就是换行符,则string参数将被置为空string。

其中,常常需要逐行读取一个文本文件,举例来说:

void read_config( string &conf )
{
	ifstream is( conf.c_str );
	if( !is.is_open() )
{
	cerr<<” cannot open file”<<endl;
	return ;
}
string line;
while( getline( is, line) )
{
	stringstream ss( line );
		string value;
	getline( ss, value, ‘=’ );		//这样就可以对每一行的进行处理
	…
}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值