初识输入输出
- C++用 标准库(standard library) 来提供本身未定义的输入输出(IO)语句
iostream库:包含两个基础类型,istream、ostream,表示输入流与输出流。
流(stream):字符序列,是从IO设备读出或写入IO设备的。
标准输入输出对象
共四个:
- cin[si: in]:istream类型对象,称标准输入(standard input)
- cout[si: aʊt]:ostream类型对象,称标准输出(standard output)
- cerr[si: ɜː(r )]:ostream类型对象,称标准错误(standard error),常用于输出警告和错误信息
- clog[si: lɒɡ]:ostream类型对象,称标准日志记录(standard logging),用于输出一般性信息
一个使用IO库的程序
#include <iostream>
int main()
{
std::cout << "Enter two numbers: " << std::endl;
int v1 = 0, v2 = 0;
std::cin >> v1 >> v2; // 假定为1、2
std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl;
// 输出:The sum of 1 and 2 is 3
return 0;
}
代码分析
-
头文件(header):
#include <iostream>
每个使用标准库设施的程序都必须包含相关的头文件,一般写在源文件起始位置 -
向流写入数据(第5行)
输出运算符(<<) :接受两个对象,左侧必须为一个 ostream对象,右侧为要打印的值
字符串字面值常量(string literal):用引号包围的字符序列
操纵符(manipulator):一个对象,会影响流的状态,并能用作输入或输出的运算对象
例如:endl,作用为结束当前行,并将设备关联的缓冲区(buffer)中的内容刷到设备中 -
标准库中的名字
cin 与 cout 定义在命名空间(namespace)—— std 中在使用标准库中的一个名字时,必需显式说明
例如:std::out ,其中 “ :: “” 为作用域运算符 -
从流读取数据
输入运算符(>>):接受两个对象,左侧为一个 istream对象,右侧为一个合法对象尖的部分指向的对象就是数据输入的方向,一个符号注入一次
习题(编译运行于VS 2019):
std::cout << "hello, world" << std::endl; // hello, world
std::cout << "The product of " << v1 << " and " << v2 << " is " << v1 * v2 << std::endl;
-
std::cout << "The product of "; std::cout << v1; std::cout << " and "; std::cout << v2; std::cout << " is "; std::cout << v1 * v2; std::cout << std::endl;
4.不合法,输出运算符接受两个对象,应去掉第一第二行的分号,或在第二第三行开头加上 std::cout