输入输出流
C++便准库内定义了很多输入输出功能,C++的I/O发生在流中,流是字节序列,所谓输入流指字节流从终端或文件流向内存,而输出流则是字节流从内存流向设备终端或文件。
I/O流的头文件
头文件 | 描述 |
---|---|
< iostream > | 标准输入输出流,文件定义了标准输入流cin、标准输出流cout、非缓冲标准错误额流cerr、缓冲标准错误流clog。 |
< fstream > | 文件流头文件,为用户的文件I/O操作提供接口函数 |
< iomanip > | 通过参数化流操纵器(setw/setprecision)来声明对执行标准化I/O有用的服务 |
iostream
标准输入输出cin/cout::通常与流提取运算符>>和流插入运算符<<结合使用。而提取和插入运算符本质是一种运算符重载,根据要输出的数据类型和要接收的数据类型来重写输入输出函数。且运算符支持链式操作,即运算符返回的是cout/cin本身,而不是一个操作成功与否的状态结果。
#include<iostream>
using namespace std;
int main(){
int id;
int age;
cout<<"input your id : ";
cin>>id>>age;//连续输入,空格或换行分隔
cout <<"your id is : "<<id<<" age is : "<<age<<endl;
}
标准错误流cerr:也是一种非缓冲的,每一个插入到cerr的数据流都会立即输出到显示屏。
#include<iostream>
using namespace std;
int main(){
char str[]="unable to do ...."
cerr<<"Error message : "<<str<<endl;
}
标准日志流clog:日志流和错误流类似,不同之处在于日志流是有缓冲的,即通常不会立即输出,只有到缓冲区数据堆满才进行一次输出,而错误流会立即输出;缓冲区的目的在于减少刷屏次数,因此一般对于紧急的错误消息由cerr立即输出,而对于一些普通打印信息则以日志流方式输出。
fstream
iostream是针对终端的,而fstream则是针对文件的。fstream定义了三种数据类型:
类型 | 描述 |
---|---|
ofst |