c++ 中cin、cin.get()与cin.getline之间的区别

#include <iostream>

int main()
{
	using namespace std;
	char firstName[10], lastName[10];
	char grade[2];//grade一定是一个字符的字符串,需要注意的是字符串要有标记结尾的空字符
	int age;
	string a;

	//下面主要展示了集中cin输入的用法和区别
	cout << "What is your first name?";
	cin.get(firstName, 10).get();/*第一种,cin.get(obj,arrSize)。
	第一个参数是保存的字符串数组,这个参数必须是字符串数组,不能是字符串;
	第二个参数是限制长度,防止字符串数组越界。需要注意的是,
	get()会将回车之前的字符全部储存到目标字符数组中,但是不会存储换行符,
	而是将其留在输入序列中,并在字符串的结尾添加空字符。
	为了处理掉留在输入序列的换行符,可以使用一个get读入,但是部将其赋值给某个变量。*/
	cout << "What is your last name?";
	cin.getline(lastName, 10);/*第二种,cin.getline(obj,arrSize)。
	参数同上,不同的是,getline会丢弃换行符,然后在读入的字符串末尾添加一个空字符。
	不管是get还是getline都要注意arrsize是字符串加上空字符的长度。*/
	cout << "What letter grade do you deserve?";
	cin >> grade;/*第三种,最常见的一种,遇到空字符类的输入(空格,回车,制表符)
	就会停止输入。get和getline的优势:可以输入空格等;可以限制读入的长度。*/
	cout << "what is your age?";
	cin >> age;
	cin >> a;

	cout << "Name: "
		<< lastName
		<< ", "
		<< firstName << endl
		<< "Grade: "
		<< grade << endl
		<< "Age: "
		<< age << endl
		<< a << endl;
}
重要的:
1、cin.get与cin.getline相较于cin可以输入空格制表符等,并且可以设置输入长度,防止数组越界
2、cin.get会将换行符留在输入序列中,而getline则会将换行符舍弃
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值