IO
1. IO类有三种,头文件<iostream> 包含了istream、ostream、iostream 头文件<fstream> 包含了读写文件的ifstream、ofstream、fstream <sstream>头文件 包含了读写string的istreamstring、ostringstream、iostringstream
2. fstream和iostringstream都是继承自iostream的,所以使用iostream的地方都可以使用这两个,都可以使用<< >>
3. IO对象不能拷贝不能赋值,不能是const的,输入时,用while(cin>>s)判断输入是否正确
4. 输出时,有缓冲区存在,方便一次输出多个,节省开销,刷新缓冲区有几种情况:1. main函数return结束 2. endl 换行刷新 ends加空字刷新 flush直接刷新
5. 这里用fstream代表fstream、ifstream、ofstream:
fstream fs(s); // s是string,把文件流绑定在一个文件上
fstream fs(s,mode); // 指定一个mode
fs.open(s); // 打开一个文件,判断if(fs.open(s))是否打开成功
fs.open(s, mode); // open也可以指定mode
fs.close(s); // 关闭一个文件,fstream被销毁时,自动执行close
6. mode有这几种:out只读、in只写、app在尾部写、ate在尾打开文件、binary二进制方式,输出时,只有指定app模式才能保留文件,ofstream f(s, ofstream::out|ofstream::app);
否则文件已有数据会被抹去
7. stringstream s.str() 返回字符串流中的字符串
while(getline(cin, line)) { // getline取一行输入,测试用例中输入为abcde edcba
string a,b;
istringstream ist(line); // line初始化istringstream
ist >> a; // 第一个abcde输出到a
ist >> b; // >>方向可以看做输出方向
ostringstream ost;
ost << a; // a中字符串输入到ost中
ost << b;
cout<<ost.str()<<endl; // 用.str()输出所有ostringstream中的字符串
}