I/O类
iostream 标准输入输出
fstream 文件输入输出
sstream string输入输出
wchar_t 宽字符类型,对应的有wistream和wostream流中的wcin,wcout等
流的条件状态
通过s.bad(),s.fail()等可以查询相关状态,返回true表示相应标志位被置1了
通过cin.clear(),cin.setstate(flags)可以管理条件状态
刷新输出缓冲
cout << "bye" << flush; //输出hi,不附带任何字符,刷新 cout << "bye" << ends; //输出hi,附带一个空字符,刷新
程序崩溃或异常终止时不会刷新
关联的输入输出流会,使用任一种流时都会刷新
tie函数
cin.tie(); //返回关联的输出流指针cout
cin.tie(&cerr); //将cin与cerr关联起来
同理可将输出流与输入流关联起来
文件输入输出
基本类型
ifstream 读数据
ofstream 写数据
fstream 读写数据
fstream特有操作
fstrm(s),创建并打开文件名为s的文件,打开模式依赖于fstrm的类型
fstrm(s,mode),按指定模式mode打开
fstrm.open(),打开文件名为s的文件,打开模式依赖于fstrm的类型
fstrm.close()
fstrm.is_open(),返回bool值,指出fstrm是否成功打开且尚未关闭
可以将IO流作为对象传递到函数中使用
检测open是否成功
ifstream in1; in1.open("test"); ifstream in2("test"); if(in1) { /* ...... */ }
文件模式
in 以读方式打开
out 以写方式打开
app 追加
ate 打开后直接定位到文件末尾
trunc 截断文件,相当于重写
binary 二进制方式IO
string流
基本类型
istringstream,ostringstream,stringstream
基本操作
strm(s) 初始化strm,保存s的拷贝
strm.str() 返回strm保存的string
strm.str(s) 将s拷贝到strm中
使用sstream的方法类似,通常用于逐行处理文件(istringstream)或逐行打印前的操作(ostringstream)
本来在总结函数部分,结果临时要写个关于文件操作的脚本,想了想不如总结一下,用C++写更划得来。