👻 概念
-
I/O 发生在流中,流是字节序列
-
如果字节流是从设备流向内存(如键盘、磁盘驱动器、网络连接等),叫做输入操作
-
如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),叫做输出操作
👻 准备工作
使用I/O流需要包含 <iostream>
等头文件:
头文件 | 函数和描述 |
---|---|
<iostream> | 定义 cin、cout、cerr、clog 对象,对应标准输入流、标准输出流、非缓冲标准错误流、缓冲标准错误流 |
<iomanip> | 通过参数化的流操纵器(比如 setw 和 setprecision),提供对输入/输出流的格式化操作 |
<fstream> | 用于文件输入输出操作的类 |
👻 标准输出流 cout
cout
对象连接到标准输出设备,通常是显示屏,与 流插入运算符 <<
结合使用
#include <iostream>
using namespace std;
char str[] = "Hello C++";
cout << "Str : " << str << endl;
👻 标准输入流 cin
cin
对象连接到标准输入设备,通常是键盘,与 流提取运算符 >>
结合使用的
#include <iostream>
using namespace std;
char name[50];
cout << "Input name:";
cin >> name;
cout << "Name:" << name << endl;
流提取运算符 >> 在一个语句中可以多次使用:
cin >> name >> age;
相当于:
cin >> name; cin >> age;
👻 标准错误流 cerr
cerr
对象连接到标准输出设备,通常是显示屏,与 流插入运算符 <<
结合使用的
cerr
对象是非缓冲的,每个流插入到cerr都会立即输出
#include <iostream>
using namespace std;
char str[] = "Unable to read....";
cerr << "Error message : " << str << endl;
Error message : Unable to read....
👻 标准日志流 clog
clog
对象连接到标准输出设备,通常是显示屏,与 流插入运算符 <<
结合使用的
clog
对象是缓冲的,每个流插入到 clog 都会先存储在缓冲区,直到缓冲填满或者缓冲区刷新时才会输出
#include <iostream>
using namespace std;
char str[] = "Unable to read....";
clog << "Error message : " << str << endl;
Error message : Unable to read....