# 输入输出、文件与流

> [!info] 学习导航
> 返回：[[C++ 学习指南]]
> 前置知识：[[计算机系/C++/01 C++ 概览、基础类型与函数|C++ 概览、基础类型与函数]]

## 输入结束方式

**Windows系统下键盘输入时，可以在输入尾部，新行开始时，按下crtl+z键。在输入会和模拟输入结束**

**While(cin>>str)，再按下回车键，模拟输入结束**

**Hello hello**

**^Z**

1. **cin 的缓冲机制：**
   - **cin 是行缓冲的，所以按 Enter 后才会处理输入。**
   - **Ctrl + Z 必须在新行提交后才能生效。**

```cpp
  string str;
  while (getline(cin, str)) {
    if (str.empty()) break; // 如果输入空行，也可以退出
    cout << "Read: " << str << endl;
  }
```

## 文件和流

## 流

流: C++中把数据之间的传输操作称为流， 一个字节序列, 如果流向程序（内存）, 从流中获取数据，则称这个流为输入流; 如果流出程序（内存）, 向流中添加数据的操作，则称为输出流.

 C++ 的 I/O 发生在流中，流是字节序列。如果字节流是从设备（如键盘、磁盘驱动器、网络连接等）流向内存，这叫做**输入操作**。如果字节流是从内存流向设备（如显示屏、打印机、磁盘驱动器、网络连接等），这叫做**输出操作**。

流既可以表示数据从内存传送到某个载体或设备中，即输出流，也可以表示数据从某个载体或设备传送到内存缓冲区变量中，即输入流。

流是一个抽象的概念, 当实际进行I/O操作时,必须将流和一种具体的物理设备联结起来

流类库: C++将输入输出有关的操作定义为一个类体系, 并将其放在一个系统库内, 以备用户调用, 该类体系叫做流类, 提供流类实现的系统
 被称为流类库

流类库的基本结构: 一个利用继承组织类层层次的典范. C++的流类库由几个进行I/O操作的基础类和几个支持特定源和目标的I/O操作的类组
 成.

C++流涉及以下概念：

标准I/O流：内存与标准输入输出设备之间信息的传递；

文件I/O流：内存与外部文件之间信息的传递；

字符串I/O流：内存变量与表示字符串流的字符数组之间信息的传递

流类库的基本层次:


ios类是istream和ostream的虚基类, 提供对流进行格式化I/O的操作和错误处理的成员函数.
 istream提供对流进行提取的操作
 ostream提供对流进行插入的操作
 iostream通过将类istream和ostream组合在一起来支持对一个流进行双向操作, 没有提供其他新函数

C++预定义的流:
 cin(istream类对象):与标准输入设备相关联
 cout(ostream类对象):与标准输出设备相关联
 cerr(ostream类对象):与标准错误输出设备相关联(非缓存方式)
 clog(ostream类对象):与标准错误输出设备相关联(缓冲方式)

操作系统默认标准输入输出设备:
 标准输出设备:显示终端
 标准输入设备:键盘
 任何情况下:
 标准错误输出设备:显示终端

**I/O 库头文件**

下列的头文件在 C++ 编程中很重要。

| **头文件**                                                  | **函数和描述**                                               |
| ----------------------------------------------------------- | ------------------------------------------------------------ |
| [](https://www.runoob.com/cplusplus/cpp-libs-iostream.html) | 该文件定义了 **cin、cout、cerr** 和 **clog** 对象，分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。 |
| [](https://www.runoob.com/cplusplus/cpp-libs-iomanip.html)  | 该文件通过所谓的参数化的流操纵器（比如 **setw** 和 **setprecision**），来声明对执行标准化 I/O 有用的服务。 |
| [](https://www.runoob.com/cplusplus/cpp-libs-fstream.html)  | 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。 |

### Iostream

是流对象！

**标准输出流（cout）**

预定义的对象 **cout** 是 **iostream** 类的一个实例。cout 对象"连接"到标准输出设备，通常是显示屏。**cout** 是与流插入运算符 << 结合使用的，

**标准输入流（cin）**

预定义的对象 **cin** 是 **iostream** 类的一个实例。cin 对象附属到标准输入设备，通常是键盘。**cin** 是与流提取运算符 >> 结合使用的，流提取运算符 >> 在一个语句中可以多次使用，如果要求输入多个数据，可以使用如下语句：

```cpp
cin >> name >> age;
```

这相当于下面两个语句：

```cpp
cin >> name;
cin >> age;
```

**标准错误流（cerr）**

预定义的对象 **cerr** 是 **iostream** 类的一个实例。cerr 对象附属到标准输出设备，通常也是显示屏，但是 **cerr** 对象是非缓冲的，且每个流插入到 cerr 都会立即输出。

**标准日志流（clog）**

预定义的对象 **clog** 是 **iostream** 类的一个实例。clog 对象附属到标准输出设备，通常也是显示屏，但是 **clog** 对象是缓冲的。这意味着每个流插入到 clog 都会先存储在缓冲区，直到缓冲填满或者缓冲区刷新时才会输出。

\<iostream>库是 C++ 标准库中用于输入输出操作的头文件。

\<iostream> 定义了几个常用的流类和操作符，允许程序与标准输入输出设备（如键盘和屏幕）进行交互。

以下是\<iostream>库的详细使用说明，包括其主要类和常见用法示例。

**主要类**

- std::istream：用于输入操作的抽象基类。
- std::ostream：用于输出操作的抽象基类。
- std::iostream：继承自std::istream和std::ostream，用于同时进行输入和输出操作。
- std::cin：标准输入流对象，通常与键盘关联。
- std::cout：标准输出流对象，通常与屏幕关联。
- std::cerr：标准错误输出流对象，不带缓冲，通常与屏幕关联。
- std::clog：标准日志流对象，带缓冲，通常与屏幕关联。

**常用操作符**

- \>>：输入（插入）操作符，从输入流读取数据。
- <<：输出（提取）操作符，将数据写入输出流。

```cpp
// 设置输出精度
   std::cout << std::setprecision(3) << pi << std::endl;
// 设置输出宽度和对齐方式
   std::cout << std::setw(10) << std::left << pi << std::endl;
   std::cout << std::setw(10) << std::right << pi << std::endl;
// 检查输入操作是否成功
   if (std::cin.fail())
```

使用std::getline函数可以读取包含空格的整行输入。

### Iomanip

 Input/Output Manipulators 的缩写，它提供了一组操作符

使用\<iomanip>库可以对输出进行格式化，例如设置宽度、精度和对齐方式。

iomanip 中定义的操作符：

| **操作符**            | **描述**                 | **输入** | **输出** |
| --------------------- | ------------------------ | -------- | -------- |
| resetiosflags(long f) | 关闭被指定为f的标志      | √        | √        |
| setbase(int base)     | 设置数值的基本数为base   |          | √        |
| setfill(int ch)       | 设置填充字符为ch         |          | √        |
| setiosflags(long f)   | 启用指定为f的标志        | √        | √        |
| setprecision(int p)   | 设置数值的精度(四舍五入) |          | √        |
| setw(int w)           | 设置域宽度为w            |          | √        |

**5. 设置和重置格式标志**

setiosflags 和 resetiosflags 可以设置或重置流的格式标志。

### \<sstream>

在 C++ 编程中，处理字符串和数字之间的转换是一项常见的任务。

sstream 是 C++ 标准库中的一个组件，它提供了一种方便的方式来处理字符串流（可以像处理流一样处理字符串）。

\<sstream> 允许你将字符串当作输入/输出流来使用，这使得从字符串中读取数据或将数据写入字符串变得非常简单。

```cpp
#include <iostream>
#include <sstream>
int main() {
  std::string data = "30 40.5";
  std::stringstream ss(data);
  int i;
  double d;
// 从stringstream读取数据
  ss >> i >> d;
  std::cout << "Read Integer: " << i << ", Double: " << d << std::endl;
// 向stringstream写入数据
  ss.str(""); // 清空stringstream
  ss << "New data: " << 50 << " " << 60.7;
  std::string newData = ss.str();
  std::cout << "New data string: " << newData << std::endl;
  return 0;
}
```

**你可以用 "\n" 代替以上代码里的 endl。**

## 文件

支持文件的流类:

为了支持在程序这对文件进行操作,C++流类库在流类库基本类层次结构继承上, 又派生出了五个类

(fstreambase, ifstream, ofstream, fstream, filebuf )

fstreambase是文件流的共同基类, 程序中不使用该类进行文件操作, 派生自ios类
 使用ifstream, ofstream, fstream 进行文件操作
 ifstream从istream继承了读操作, 仅用于读文件, 派生自istream和fstreambse
 ofstream从ostrea,继承了写操作, 仅用于写文件, 派生自ostream和fstreambse
 fstream类用于对文件进行读写操作, 派生自iostream和fstreambse
 filebuf派生自streambuf类, 负责管理文件操作的缓冲区

 ![img](data:image/png;base64,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)


输入流

输出流

流迭代器

Ios：抽象基类

由ios派生出类istream和类ostream


| **数据类型** | **描述**                                                     |
| ------------ | ------------------------------------------------------------ |
| ofstream     | 该数据类型表示输出文件流，用于创建文件并向文件写入信息。     |
| ifstream     | 该数据类型表示输入文件流，用于从文件读取信息。               |
| fstream      | 该数据类型通常表示文件流，且同时具有 ofstream 和 ifstream 两种功能，这意味着它可以创建文件，向文件写入信息，从文件读取信息。 |

要在 C++ 中进行文件处理，必须在 C++ 源代码文件中包含头文件 \<iostream> 和 \<fstream>。

### fstream

打开文件

在从文件读取信息或者向文件写入信息之前，必须先打开文件。**ofstream** 和 **fstream** 对象都可以用来打开文件进行写操作，如果只需要打开文件进行读操作，则使用 **ifstream** 对象。

下面是 open() 函数的标准语法，open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。

```cpp
void open(const char *filename, ios::openmode mode);
```

。

**cin** 是预定义的**输入流对象**（**istream** 类型），不是类。

**open()** 用于打开文件流，不是生成新流对象。

| **模式标志** | **描述**                                                     |
| ------------ | ------------------------------------------------------------ |
| ios::app     | 追加模式。所有写入都追加到文件末尾。                         |
| ios::ate     | 文件打开后定位到文件末尾。                                   |
| ios::in      | 打开文件用于读取。                                           |
| ios::out     | 打开文件用于写入。                                           |
| ios::trunc   | 如果该文件已经存在，其内容将在打开文件之前被截断，即把文件长度设为 0。 |

**关闭文件**

当 C++ 程序终止时，它会自动关闭刷新所有流，释放所有分配的内存，并关闭所有打开的文件。但程序员应该养成一个好习惯，在程序终止前关闭所有打开的文件。

下面是 close() 函数的标准语法，close() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。

```cpp
void close();
```

**写入文件**

在 C++ 编程中，我们使用流插入运算符（ << ）向文件写入信息，就像使用该运算符输出信息到屏幕上一样。唯一不同的是，在这里您使用的是 **ofstream** 或 **fstream** 对象，而不是 **cout** 对象。

**读取文件**

在 C++ 编程中，我们使用流提取运算符（ >> ）从文件读取信息，就像使用该运算符从键盘输入信息一样。唯一不同的是，在这里您使用的是 **ifstream** 或 **fstream** 对象，而不是 **cin** 对象。

**文件位置指针**

**istream** 和 **ostream** 都提供了用于重新定位文件位置指针的成员函数。这些成员函数包括关于 istream 的 **seekg**（"seek get"）和关于 ostream 的 **seekp**（"seek put"）。

seekg 和 seekp 的参数通常是一个长整型。第二个参数可以用于指定查找方向。查找方向可以是 **ios::beg**（默认的，从流的开头开始定位），也可以是 **ios::cur**（从流的当前位置开始定位），也可以是 **ios::end**（从流的末尾开始定位）。

文件位置指针是一个整数值，指定了从文件的起始位置到指针所在位置的字节数。


Ofstrean myfile（“filename”）

Ofstream类支持磁盘文件输出

如果在构造函数中指定一个文件名，当构造这个文件时是自动打开的

在调用默认构造函数之后使用open函数成员打开文件

Ofstream myfile

Myfile.open(“filename”,std::out,std::binary)

输出格式状态实在类ios中的枚举值，用于指定输出数据的格式，所以在引用这些格式的时候

使用输出流控制符输出格式

输出流控制符 实在头文件iomanip.h中定义

```cpp
Setpricision(n)
```


Stew（n）

```cpp
Setfill(n)
```


Cout.Set(ios::left)

流迭代器：用于从输入流中粗去数据；迭代器自增时时，读取流中断下一个值

输入和输出是指数据传送的过程，数据向流水一样从一个地方流向另一个地方，C++将此过程称为流（stream）

Copy(int input iter,std::back_inserter(data))

Back_inserter通过调用容器opush_back()方法实现输入操作

自动扩容：当存储空间不足时自动调用push_back()扩容

合并多个容器

合并多个容器

复制文件

Std::copy(part 1.begin(),part1.end(),std::back_insert(combined))

Istreambuf_iterator

直接读写缓冲区字符的迭代器。

不进行格式化

将二进制数据写入文件

文件拷贝

读取图像

直接读取缓冲区

将所有类型转换为字符类型


Cout/cin流对象

Auto：自动识别数据类型

插入运算符<<

提取运算符>>

函数调用的时候

New 与malloc

Delete []p

Int \*只是一种定义，实际上是q=&m

Int & 同样 `q = m;`
---

## 学习导航

- 上一篇：[[计算机系/C++/03 引用、指针与动态内存|引用、指针与动态内存]]
- 返回目录：[[C++ 学习指南]]
- 下一篇：[[计算机系/C++/05 基础数据结构与 POD|基础数据结构与 POD]]
