IO标准库——②控制台输入输出

iostream库简介

iostream库包含两个基本基础类型istream和ostream,分别表示输入流和输出流。

一个流就是一个字符序列,是从IO设备读出或写入IO设备的。

istream类型对象和ostream类型对象

标准库iostream定义了4个IO对象,分别为:

  • istream类型对象cin:
    • 为了处理输入,我们使用一个名为cin的istream类型对象,这个对象也被称为标准输入
  • ostream类型对象cout、cerr、clog:
    • 为了处理输出,我们使用一个名为cout的ostream类型对象,这个对象也被称为标准输出
    • 名为cerr的ostream类型对象被称为标准错误,通常用来输出警告和错误消息。
    • 名为clog的ostream类型对象则用来输出程序运行时的一般性信息。

系统通常将程序所运行的窗口与这些对象关联起来。因此,

  • 当我们读取cin,数据将从程序正在运行的窗口读入。
  • 当我们向cout、cerr、clog写入数据时,将会写到同一个窗口。

输入运算符和输出运算符

输出运算符<<

输出运算符<<接受两个运算对象:左侧运算对象必须是一个ostream类型对象,右侧的运算对象是要打印的值。

输出运算符<<将给定的值写到给定的ostream类型对象中。

输出运算符<<的计算结果就是其左侧运算对象,即计算结果就是我们写入给定值的那个ostream类型对象。

这里写图片描述

由于输出运算符<<的计算结果就是其左侧运算对象,所以我们可以将一系列输出请求合并到单一语句中。

cout << "Enter two number:" << endl;

等价于

cout << "Enter two number:";
cout << endl;

输入运算符>>

输入运算符>>接受两个运算对象:左侧运算对象必须是一个istream类型对象,右侧的运算对象是一个普通对象。

输入运算符>>从给定的istream类型对象读入数据,并存入给定对象中。

输入运算符>>的计算结果就是其左侧运算对象。

这里写图片描述

由于输入运算符>>的计算结果就是其左侧运算对象,所以我们可以将一系列输入请求合并到单一语句中。

cin >> v1 >> v2;

等价于

cin >> v1;
cin >> v2;

getline函数

由于,在执行读操作时,string对象会自动忽略开头的空白(空格符,换行符,制表符等)并从第一个真正的字符开始读起,直到遇见下一处空白。

有时候,我们希望能在最终得到的字符串中保留输入的空白符,这时应该用getline函数代替原来的输入运算符>>。

getline函数的参数是一个输入流和一个string对象,函数从给定的输入流中读入内容,直到遇到换行符为止(换行符也被读进来了),然后把所读到的内容存入那个string对象中去(注意不存换行符)。

getline函数只要一遇到换行符就结束读取操作并返回结果,哪怕输入的一开始就是换行符也是如此,此时结果是个空string。

这里写图片描述

string line;
while (getline(cin , line))
{
    cout << line << endl;
}
return 0;

示例demo

cout << "Enter two number : " << endl;
int v1 = 0 , v2 = 0;
cin >> v1 >> v2;
cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << endl;
return 0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值