数据输入与输出

I/O 流

在 C++ 中,数据从一个对象流向另一个对象被抽象为“流”。cin 和 cout 是预定义的流类对象,其中 cin 用于处理标准输入(键盘输入),而 cout 用于处理标准输出(屏幕输出)。


预定义的插入和提取运算符

“<<” 是预定义的插入运算符,当应用于流类对象 cout 时,可以实现最一般的屏幕输出。

“>>” 是提取运算符,当应用于流类对象 cin 时,可以实现最一般的键盘输入。


常见的 I/O 流库操控符

操控符名称 意义
dec 十进制表示的数字数据
hex 十六进制表示的数字数据
oct 八进制表示的数字数据
ws 提取空白字符
endl 插入换行并刷新流
setsprecision(int) 设置浮点数的小数位数(包括小数点)
setw(int) 设置字段宽度

if-else 语句

首先,else 的配对方法是通过向上查找与同一层级的 if 配对。 例如:

1
2
3
4
5
6
if()
if()
else()
else
if()
else()

这是可行的,因为所有 else 语句都有配对,但缩进并不代表结构。严格来说,应该使用 {} 来区分不同的嵌套层级。仅用于区分不同的结构


反例

1
2
3
if()
if()
else

在这种情况下,else 与缩进的 if 配对。


typedef 声明

typedef existing_type_name new_type_name_list

例如:

1
2
3
4
5
typedef double Area,Volume;
typedef int Natural;
Natural i1,i2;
Area a;
Volume v;

除了 typedef 之外定义自定义类型的另一种方法:using

using new_type_name = existing_type_name

例如:

1
2
using Area = double;
using Volume = double;

auto 类型和 decltype 类型

auto:编译器通过初始值自动确定变量类型
decltype:定义一个与某个表达式具有相同类型的变量,但不使用该表达式初始化变量
例如:decltype(i) j = 2; 使 j 具有与 i 相同的类型,但不使用 2 初始化 j。