目录
🍯1.2 输入与输出
C++语言是通过一个标准库来实现输入与输出的,我们这里介绍
库,iostream库包含两个基础类型,分别为istream(输入流)与ostream输出流。 Q1:什么是流(stream)呢?
A1:一个流就是一个字符序列,是从IO设备读出或写入IO设备的。流就像是水流一样,随着时间的推移顺流而下,字符也是如这样顺序生成或消耗的。
🥝1. 标准输入与输出对象
标准库定义了四个IO对象,这四个IO对象的用法各不相同,主要有以下这些特点:
- cin:该对象是istream类型,称为标准输出;
- cout:该对象是ostream类型,称为标准输出;
- cerr:该对象通常用来输出警告和错误信息,被称为标准错误;
- clog:该对象用来输出程序运行时的一般性信息。
注意:以上的这些对象都是包含在库函数
头文件中,此外上述的这些名字都是定义在命名空间std中,因此当我们需要使用上述IO对象时,必须包含 头文件+std,具体代码如下。
#include using namespace std; ····//其余IO代码
🥝2. 输出运算符与输入运算符
C++的输入输出操作相比C语言更加方便,它不需要像printf/scanf那样手动设置格式,C++的输入输出可以自动识别变量类型,比如我们想要输入一个整型值和一个浮点数,并将它们挨个打印,使用C++的操作如下:
#include using namespace std; int main() { int a = 0; float b = 0; cin >> a >> b; //输入两个值,用a、b接收,不需要指定a为%d,b的类型为%f cout << a << endl << b; //从左向右挨个输出 a的值->换行->b的值 }通过上面这个例子我们简要理解了一下C++的输入输出特点,接下来我们进一步来了解一下C++的输出与输入运算符。
1、输出运算符(<<)
输出运算符接受两个运算对象,左操作数为ostream对象,右操作数为需要打印的值。输出运算符的计算结果就是左侧运算对象,即我们写入给定值的那个ostream对象。
std::cout << add(a, b); //输出函数add的返回值 std::cout << "\na的值为"; //输出一串字符序列(\n为转义字符,起换行作用) std::cout << a; //输出a的值 std::cout << "\nb的值为"; //输出一串字符序列 std::cout << b; //输出b的值上述操作分别使用了5次输出运算符,我们也可以将上述代码合并,生成相同的连续输出:
std::cout << add(a, b) << "\na的值为" << a << "\nb的值为" << b;
2、输入运算符(>>)
输入运算符也接受两个运算对象,它接受一个istream作为其左侧的运算对象,接受一个对象作为其右侧的运算对象;输入运算将从给定的istream中读入数据,并存入右侧的给定对象中。
std::cin >> a; //将读取的值赋给变量a std::cin >> b; //将读取的值赋给变量b同理,我们也可以将上述的输入操作进行合并,生成相同的输出:
std::cin >> a >> b; //输入两个数,用a、b顺序接收
现在我们来通过结合输入与输出运算符的示例代码,来检验一下实战中的表现,我们设置一个add函数负责计算输入的两数之和,并将它们的和与自身的值挨个打印,具体实现如下:
#include int add(int x, int y) { return x + y; } int main() { int a = 0, b = 0; std::cin >> a >> b; //从左向右挨顺序读取输入的数值 std::cout << add(a, b) << "\na的值为" << a << "\nb的值为" << b; }当然,通过上一章的学习我们知道,可以通过使用using声明的方法来简化上述操作中的std::前缀,进而更简单地访问标准库中的名字,修改后的代码如下:
#include using namespace std; int add(int x, int y) { return x + y; } int main() { int a = 0, b = 0; cin >> a >> b; //直接使用cin,不带std::前缀 cout << add(a, b) << "\na的值为" << a << "\nb的值为" << b; //直接使用cout }