文章目录
C++的标准输入(istream)标准库(APi)
一 作为istream的对象cin的成员函数详解:
cin为istream的一个全局性的object.在缓冲区无数据是自动阻塞等待输入,只要缓冲区有数据则不会阻塞;
(一)operator>>()函数
operator>>()遇到空格,Tab,Enter(3种)停止,并且自动忽略有效字符串之前的所有三种字符;如下例:
#include<iostream>
using namespace std;
int main() {
{
int a,b;
cin >> a >> b;
cout << a << " " << b << "\n";
}
system("pause");
return 0;
}
输入1+Enter+空格+Tab+2,输出:
存在疑问的地方:输入不合法时的异常(例如输入’a’+2),仍待解决:
(二)get()函数:
get()函数有,无参数,单个参数,两个参数,三个参数四种模式;
1.int_type cin.get()与istream &cin.get(_Elem & _Ch)
无参数模式返回的是输入的对象类型(可暂时理解为基础类型):
如 int a=cin.get();
单个参数模式返回的是istream本身的引用,参数为准备接收的char引用
如下例:(只能获取单个的char,其他如int等都不行)
#include<iostream>
using namespace std;
int main() {
{
char a,b,c;
cin.get(a).get(b).get(c);
cout << a << " " << b << " " << c << "\n";
}
system("pause");
return 0;
}
输入123,输出结果:
另外我们可以验证get()是不忽略空格,Tab,Enter(3种)的,如下例:
#include<iostream>
using namespace std;
int main() {
{
char a,b,c;
cin.get(a).get(b).get(c);
printf("%d ", a);