亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C++ 流精通:cout、cin、cerr、clog 实战指南

C++ 中的流是什么?

C++ 通过一族流类抽象输入输出,以字节序列形式传输数据。流是语言中所有 I/O 操作的基石。

流分两类:

流的类型

本教程涵盖:

流如何工作

典型 C++ 流操作流程:

  1. 实例化适当类型的流对象。
  2. 通过 get/put 指针将流与设备或文件关联。
  3. 通过提取(>>)或插入(<<)运算符执行 I/O。

流类概览

streambuf 头文件提供多个管理文件缓冲区的类:

类说明
filebuf管理文件读写缓冲区,提供 open() 和 close()。
fstreambaseifstream、fstream、ofstream 的基类 – 通用文件流操作。
ifstream输入文件流,用于读取数据。
ofstream输出文件流,用于写入数据。
fstream组合输入输出流。

C++ I/O 头文件

所有这些对象定义在 iostream 中;省略该头文件会导致编译错误。

std::cout

cout 对象写入标准输出流(通常是控制台),配合插入运算符(<<)使用。

示例

#include <iostream> using namespace std; int main() { char welcome[] = "Welcome to Guru99"; cout << welcome << endl; return 0; }

输出:

C++ 流精通:cout、cin、cerr、clog 实战指南

代码走读:

  1. 包含 iostream 访问 cout。
  2. 使用 std 命名空间避免前缀。
  3. 定义字符数组存消息。
  4. 用 endl 打印消息并换行。
  5. 返回 0 表示成功。

std::cin

cin 对象从标准输入流(通常是键盘)读取,配合提取运算符(>>)使用。

示例

#include <iostream> using namespace std; int main() { int number; cout << "Enter a number:"; cin >> number; cout << "\nYou entered: " << number; return 0; }

输出:

C++ 流精通:cout、cin、cerr、clog 实战指南

代码解释:

  1. 包含 iostream 获取 cin 和 cout。
  2. 使用 std 命名空间。
  3. 声明整型变量。
  4. 提示用户。
  5. 用 >> 读取输入。
  6. 回显输入值。
  7. 成功返回 0。

std::cerr

cerr 流输出错误消息且无缓冲,即时显示。用于必须立即呈现的严重错误。

示例

#include <iostream> using namespace std; int main() { cerr << "An Error occurred!"; return 0; }

输出:

C++ 流精通:cout、cin、cerr、clog 实战指南

解释:

  1. 包含 iostream 获取 cerr。
  2. 使用 std 命名空间。
  3. 立即打印错误消息。
  4. 返回 0。

std::clog

与 cerr 不同,clog 是有缓冲的,消息存入缓冲区待刷新再输出。适合可延迟的日志记录。

示例

#include <iostream> using namespace std; int main() { clog << "An Error occurred!"; return 0; }

输出:

C++ 流精通:cout、cin、cerr、clog 实战指南

解释:

  1. 包含 iostream 获取 clog。
  2. 使用 std 命名空间。
  3. 写入缓冲错误消息。
  4. 返回 0。

流对象的错误处理

流可在布尔上下文中求值以检查有效性。成员函数提供细粒度状态检查:

示例 – 验证文件打开:

ifstream file("myfile.txt"); if (!file) { cout << "File NOT opened!" << endl; }

示例 – 验证用户输入:

int p; if (cin >> p) { cout << "Enter valid number" << endl; }

总结

C语言

  1. C# 基础:输入输出核心技巧完全指南
  2. 掌握 C++ 输入输出:cin/cou 完整实战指南
  3. C 语言输入输出(I/O)精通:scanf() 与 printf() 详解
  4. 掌握 C++ switch-case:语法、用法与实战示例
  5. C++ 异常处理实战:try、catch、throw 完整指南与示例
  6. C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
  7. C++ 结构体详解:定义、初始化、指针、函数参数与局限性
  8. C 语言输入输出完全掌握:标准 I/O 与格式化控制
  9. C++核心语法与面向对象基石深度解析
  10. C++文件I/O完全指南:fstream读写、打开模式、定位指针与完整实例
  11. 掌握 D 锁存器:设计、工作原理与关键差异
  12. 精通 Java 输入输出:打印、读取与格式化数据