c++实现逐个字符的输入与输出()`cin`、`cin.get(char)`与`cin.get()`之间的区别

#include <iostream>

using namespace std;

int myCount = 0;

int main()
{
	char a;
	cin.get(a);
	while (cin)//或者是!cin.fail()
	{
		cout << a;
		++myCount;//前缀++效率更高
		cin.get(a);
	}
	cout << endl << "输入结束,一共输入了" << myCount << "个字符";;

}

对于输入来说,有三种选择:cincin.get(char)cin.get()。要考能否正确地读入空格、制表符与回车等特殊的字符,还要正确地指示输入完毕。
1.当cin遇到空格、制表符与回车等时就会结束输入,因此不能将这些字符读入
2.cin.get(char)cin.get()二者是重载函数,可以理解为同一函数名,但是输入的参数情况不同就会执行不同的函数)都可以读入以上三种特殊的字符,但是二者也有很大的不同。cin.get(char)会将读入的字符直接赋值给变量,当读到EOF(检测文件尾,不同的环境不同,一般来说是ctrl+z,但在我的win+vs+控制台输出上是ctrl+c)时,cin.fail()cin都会返回false(可以理解为不能进行cin输入了),可以通过检测这两个返回值来确定是否结束输入;cin.get()会将函数返回值赋给相应的变量,当不是EOF时返回值是字符本身,当是EOF时,会返回“EOF”(依环境而定,一般为-1),因此可以通过检测cin.get()返回值来确定是否结束输入。
3. 需要注意的是cin.get()返回值需要使用整形(int)变量来接受,而cin.get(char)可以使用字符型(char)变量来接受,这是因为cin.get()可能会返回-1,char无法承载。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值