C++输入输出流
流(文本流,二进制流)
文本流——一串ASCII码
二进制流——按二进制格式存放的数据(内存映像)
列:整数123
存于文本文件中占3个字节,‘1’,‘2’,‘3’
存于二进制文件中占4个字节,1111011
数据文件包括,文本文件和二进制文件
此外逻辑设备也对应于一个文件
如磁盘文件,设备文件等
图示
输入输出流体系
ios:输入输出流基类
streambuf:抽象缓冲区基类
istream:通用输入流基类
ostream:通用输出流基类
istream_withassign:cin所属输入流类
ostream_withassign:cout,cerr,clog所属的输出流类
重载运算符<<和>>
编译器将cin>>x>>y解释成
(cin.operayor>>(x)).operator>>(y)
类似的可解释<<
cin:标准输入流(输入设备是键盘)
cout:标准输出流(输出设备是显示器)
cerr:标准错误输出流,没有缓冲,直接输出
clog:输出日志信息,有缓冲,缓冲满后被输出
#include<iostream>
using namespace std
int main()
{
double x;
clog<<"please cin a data";
cin>>x;
cout<<x<<endl;
return 0;
}
输出结果为
5<回车>
5
please cin a data
原因:clog是缓冲输出,当缓冲区满或者程序结束时才真正“输出”到屏幕上
默认输入格式:
cin是缓冲流,当输入一行会车时,操作系统将输入内容放入输入缓冲区,然后cin从输入缓冲区提取数据
输入数据的类型必须与提取数据的变量类型一致
输入数据时,在缺省情况下,数据间的分隔符为<space>(空格),<tap>(制表),<enter>(回车),这三个键称空白字符
应当注意,最后输入的总是回车
回车的两个作用:1,一行结束,可以提取2,数据分隔符
默认输出格式
输出整型:十进制,域宽为0,右对齐,空格填充
输出浮点型:精度6位,浮点输出,域宽为0,右对齐,空格填充
若整数部分超过7位,或有效数字在小数点4位之后,自动转为科学计数法格式输出
输出字符或字符串:域宽为0,右对齐,空格填充