C++ 输入流、输出流、输入输出流

1.分类

输入流输出流输入输出流

2.输入输出类关系图

来自cplusplus.com

图片来自`cplusplus.com`

3.输入输出的理解

数据进入程序,为输入;数据流出程序,为输出。或者说,数据从外存(硬盘)进入内存,为输入,数据从内存流出只外存(硬盘等),为输出。
比如:

(1)文件流

ifstream为输入文件流,对象为a,存放硬盘某路径数据文件,将数据流入string对象b,这个过程为读文件,即输入。
ofstream为输出文件流,对象为a,打开硬盘某路径空数据文件,string对象b流出至空数据文件,这个过程为写文件,即输出。
fstream为输入输出文件流,既可以输入,又可以输出,即打开一个文件,可进行读与写操作。

(2)字符流

对应上述文件流,分别为istringstreamostringstreamstringstream
常用的为stringstream,既可输入又可输出。
比如

	string str("my name is hht");
	stringstream ss;
	ss << str;//输出,这里将整个字符串输出
	string sa;
	ss >> sa;//输入,输入时遇到空格或制表符停止,这里sa为my
	         //执行完后,ss中内容为"name is hht"
	cout << sa.c_str() << endl;//输出my
	ss >> sa;
	cout << sa.c_str() << endl;//输出name
(3)cin、cout

cin为istream对象,从键盘输入数据至某一对象;
cout为ostream对象,从某一对象输出只屏幕。

4.getline(cin,str,’,’)

第一个参数可以为cin,表示从键盘读入数据至str中,只读取逗号前面的,比如,键盘输入"hello,hht",回车,则str内容为"hello"。
也可以从输入字符串流中读,比如

	istringstream iss("hello,hht");//或者stringstream
	string str;
	getline(iss, str, ',');//str为"hello",iss中为"hht"
	cout << str.c_str();

	getline(iss, str, ',');//str为"hht",iss中为空
	cout << str.c_str();

:如果不加第三个参数,则将整个输入流中的数据读入str。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HHT0506

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值