1、IO类系统认识
(1)、IO类简介
(2)、IO类之间的关系
2、IO类的典型的性质
(1)、IO对象无拷贝或赋值
在平常的操作函数中通常以引用或指针方式传递或返回。
因为C++在设计之初就这样设计规定的。
why?
我认为像IO这种资源,是不允许多个对象同时访问,及他们的访问时互斥的;所以就不允许拷贝或复制,以免造成多个对象同时对同一IO资源进行造作。
例如:
iostream &print(iostream &io, fstream *fs){ ...} // 正确,参数和返回以引用或指针形式传递
iostream print(iostream io){ ...} // 错误,参数和返回以拷贝方式传递会发生复制和赋值操作
(2)、IO类的状态操作流的四种状态:
流获取状态的方法:
流状态操作:
操作示例:
(3)、缓冲区
3、文件流操作
(1)、三个成员函数
(2)、流指针操作
(3)、常见的函数使用
cin输入会忽略空格,回车等,如果不想忽略可加noskipws
c=cin.get()等价于cin.get(c),可读取空格,回车等字符。
cin.get(char c[ ],int n,char c)读取(n-1)个字符保存到c[ ]数组中,最后一个默认为‘\0’;遇到字符
c则提前结束。未读取的字符,后面可继续读取。
一行如果未读完,则流就会出错。
getline(cin.str),读取一行字符串