💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
#### 19. 输入输出 C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。 C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做**输入操作**。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做**输出操作**。 **I/O 库头文件** 下列的头文件在 C++ 编程中很重要。 | 头文件 | 函数和描述 | | --- | --- | | | 该文件定义了 **cin、cout、cerr** 和 **clog** 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。 | | | 该文件通过所谓的参数化的流操纵器(比如 **setw** 和 **setprecision**),来声明对执行标准化 I/O 有用的服务。 | | | 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。 | **标准输入流 cout:** 预定义的对象 **cout** 是 **iostream** 类的一个实例。cout 对象"连接"到标准输出设备,通常是显示屏。**cout** 是与流插入运算符 << 结合使用的。 **标准输入流 cin:** 预定义的对象 **cin** 是 **iostream** 类的一个实例。cin 对象附属到标准输入设备,通常是键盘。**cin** 是与流提取运算符 >> 结合使用的。 **标准错误流 cerr:** 预定义的对象 **cerr** 是 **iostream** 类的一个实例。cerr 对象附属到标准错误设备,通常也是显示屏,但是 **cerr** 对象是非缓冲的,且每个流插入到 cerr 都会立即输出。 **cerr** 也是与流插入运算符 << 结合使用的。 **标准日志流 clog:** 预定义的对象 **clog** 是 **iostream** 类的一个实例。clog 对象附属到标准错误设备,通常也是显示屏,但是 **clog** 对象是缓冲的。这意味着每个流插入到 clog 都会先存储在缓冲在,直到缓冲填满或者缓冲区刷新时才会输出。 **clog** 也是与流插入运算符 << 结合使用的。 例子: ~~~ void test17() { //1. 标准输出流 cout char str[] = "Hello World"; cout << "值为:" << str << endl; //2. 标准输入流 cin char name[10]; cout << "请输入你的名称: "; cin >> name; cout << "你的名称是:" << name << endl; // 请输入你的名称: DevYK // 你的名称是:DevYK //3. 标准错误流 cerr char errStr[] = "Read Error"; cerr << "error message:" << errStr << endl; //输出为报红的:error message:Read Error //4. 标准日志流 clog char logStr[] = "out Log"; clog << "Debug Log:" << logStr << endl; // 输出为报红的 Debug Logout Log } 复制代码 ~~~ > **输出:** ![](https://user-gold-cdn.xitu.io/2020/1/6/16f7b4f2295d1553?imageslim)