istream之cin


#include <iostream>
#include <string>
using namespace std;

void skipBlanks(istream &is)
{
	while (is.peek() == '\n' || is.peek() == '\t' || is.peek() == ' ')
		is.ignore();
}

int main()
{
	//输入原理:程序的输入都建有一个缓冲区,即输入缓冲区。
	//一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。
	//正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。

	//char ch1, ch2;

	输入方式一:cin.get();ch = cin.get()与cin.get(ch)等价
	cin.get(ch1).get(ch2);//任意键符都会被读入(包括Tab键,空格键, 回车键),输入结束条件为回车键符,并且不会丢弃缓冲区的回车键符。
	//
	输入方式二:cin>>
	//cin >> ch1 >> ch2;//输入结束条件为回车键,并且丢弃缓冲区的空白键符(包括tab键,空格键, 回车键)。

	//cout << "ch1:" << ch1 << ", ch2:" << ch2 << endl;

	char ch;
	string buf;
	while (!cin.eof())
	{
		cin.get(ch);
		skipBlanks(cin);
		buf += ch;
	}
	cout << endl;
	cout << "You have input message:" << endl;
	cout << buf << ", size: " << buf.length() << endl;	

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值