1980年,Bjarne Stroustrup开发的c++第一个版本采用的是c语言的I/O系统,Jerry Schwarz为c++开发了基于流的类。
istream类 建模了一个从任意输入设备流向一个执行着的程序的字符序列。为此'>>'也被称之为提取操作符。
默认情况下,>>运算符提取并丢弃前导的空白字符——空格、制表符和行结束符。但是要注意,输入的数据类型要和声明的变量一致,否则出现错误,如:
int m,n;
cin>>m>>n;
输入为:18.3 34
cout<<m<<" "<<n;
18 0
这样产生的结果是m=18,其余的待输入的变量全部被赋值为0;
流输入出现错误:
cin>>variable;
//assert(cin.good());
if(cin.fail())
{
cin>>ignore(20,'/n');
cin.clear();
}
即使我们调用了cin.clear(),重置了流的状态,但是非法字符不会被舍去,我们可以调用cin.ignore()来忽略掉非法字符。
如果我们想要>>不跳过前导的空白字符,可以使用 “noskipws”;
cin>>noskipws>>variable;
ostream类 建模了从一个执行这的程序流向任意一个输出设备的字符流。为此'<<'也被称为插入操作符。
对于istream和ostream的格式化输入输出,我们可以查看 <iomanip>头文件中的声明。
c++进阶之---istream/ostream简介
最新推荐文章于 2024-07-22 09:27:58 发布