2024年4月28日发(作者:)
第九章 输入输出流
一 、输入输出(IO)流的概念
1. 标准IO:对系统指定的标准设备的输入输出,例如键盘作为输入设备,屏幕作为输出设备,
简称标准IO。
2. 文件IO:对磁盘文件进行输入输出,简称文件IO。
3. 串IO:对内存空间进行输入输出,通常把一个字符数组作为存储空间,称为字符串输入输
出,简称串IO。
二、流对象
c++把程序中数据的流动抽象为“流”对象进行管理,简称流。
数据从键盘或磁盘文件流入程序,这样的流称为输入流。
数据从程序流出到屏幕或磁盘文件,这样的流称为输出流。
实际上不论输入还是输出的数据,都要在内存开辟一个缓冲区,流对象与内存缓冲区相对应
的。
三、流类库
ios是抽象基类,派生出istream和ostream,分别处理输入与输出。
iostream类双继承自istream和ostream,它没有添加新成员,只是把istream和ostream综
合在一起。
头文件
cerr、clog等流对象。
cin:istream类对象,代表标准输入。
cout:ostream类对象,代表标准输出。
“<<”和“>>”本来是位运算的运算符,在iostream头文件中被重载为成员函数,它们的
方向正好代表了数据的流向。
四、常用IO操作
1. 标准输入流cin,除了使用“>>”运算符,还可以使用“get”成员函数。
不带参数的get函数,提取一个字符,作为返回值。
带一个参数的get函数,参数是一个变量,提取一个字符给参数变量,成功返回非0,失败
返回0。
例:x=();
char y[50];
e(y,50,'n'); //常用格式,回车结束,最长输入49个字符
e(y,50,'.'); //输入一句话到y,此时句子中可以有空格也可以有回车换行,直到
碰到句号“.”才停止输入
2. 标准输出流cout
五、重载“<<”与“>>”运算符
流操作符一般重载为自定义类的友元函数,重载后可以方便的使用cout和cin输入输出自定
义类的对象。
例:
#include
using namespace std;
class person;
ostream & operator <<(ostream& os,person& t);
istream & operator >>(istream& os,person& t);
class person
{
private:
char name[20];
int age;
public:
};
ostream & operator <<(ostream& os,person& t)
{
}
istream & operator >>(istream &is,person &t)
{
}
void main()
cout<<"name:";
is>>;
cout<<"age:";
is>>;
return is;
os<<"name:"<<<<" "<<"age:"<<;
return os;
friend ostream& operator<<(ostream& os,person& t);
friend istream& operator>>(istream& os,person& t);
void display()
{
}
person(char *p="",int a=0):age(a)
{
}
strcpy(name,p);
cout<<"name:"< { } 注: 这里必须把友元函数在前面声明一下或者把友元的定义写在类内,这是VC60的问题,其实 没有语法要求必须这样。友元函数的类外声明可以放在类的头文件中。 person x; cin>>x; cout<


发布评论