输入输出流

C++ 通过以下几个类支持文件的输入和输出
ofstream写操作的文件类由ostream引申而来
ifstream读操作的文件类由istream引申而来
fstream可同时读写操作的文件类由iostream引申而来


ifstream in("tian.txt");//打开一个文件
ifstream in;
in.open("tian.txt",mode);


istream(输入流)类型,提供输入操作
ostream(输出流)类型,提供输出操作
cin:读入标准输入的istream对象
cout:写道标准输出的ostream对象
cerr:输出标准错误的ostream对象
。cerr常用于程序错误信息
getline函数,需要分别取istream类型和string类型的两个引用参数,其功能是从istream对象读取一个单词,然后写入string对象中


io对象不可赋值和复制


文件模式
in打开文件做读操作
out打开文件做写操作
app在每次打开文件前找到文件尾
ate打开文件后立即将文件定位在文件尾
trunc打开文件时清空已存在的文件流
binary以二进制模式进行IO操作


从效果看为ofstream对象制定out操作模式等效于同时指定了out和trunc操作


默认时,与ifstream流对象关联的文件将以in模式打开,该模式允许文件做读的操作;
与ofstream关联的文件则以out模式打开,使文件科协。以out模式打开的文件将被清空,丢弃该文件


要保存ofstream方式打开的文件唯一的方法是显示地制定app模式打开
ofstream appfile("file2",ofstream::app)


fstream默认情况下以in和out模式同时打开,当文件同时以in和out打开时不清空。如果打开fstream所关联的文件时,只使用out模式而不制定in模式,则文件会清空已存在的数据。如果打开文件是制定了trunc模式,则文件一定会被清空


fstream inOut("copyOut",fstream::in|fstream::out);存储的所有数据


文件模式的组合
out 打开文件做写操作,删除文件中已有的数据
out|app打开文件做写操作,在文件尾写入
out|trunc与out模式相同
in打开文件做读操作
in|out打开文件做读、写操作,并定位于文件开头处
in|out|trunc打开文件做读、写操作,删除文件中已经有的数据。
添加上ate只会改变文件打开时的初始位置,第一次读或写之前,将文件定位于文件末尾


一个打开并检查输入文件的程序
ifstream& open_file(ifstream &in, const string &file)
{
in.close();
in.clear();
in.open(file);
return in;
}


字符串流
string line,word;
while(getline(cin,line))
{
istringstream stream(line);
while(stream>>word)
cout<<word;
}


写入字符串流
int val1 = 512, val2 = 1024;
ostringstream format_message;
format_message <<"val1"<<val1<<"val2"<<val2;


转换字符串流
istingstream input_istring(format_message.str());
string s1,s2;
input_istring>>s1>>val1>>s2>>val2;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值