C++ : cin.getline()基本用法

cin.getline()的用法和cin.get()用法大致相同,没有一参数用法,只有二参数,三参数两类

  • cin.gerline(arrayname,size)
  • cin.getline(arrayname,size,s)

用法与cin.get()效果大致相同,但也有些区别

(1)cin.getline(arrayname,size)与cin.get(arrayname,size)的区别

cin.get(arrayname,size)当遇到[enter]时会结束目前输入,他不会删除缓冲区中的[enter]

cin.getline(arrayname,size)当遇到[enter]时会结束当前输入,但是会删除缓冲区中的[enter]

#include<iostream>
using namespace std;
 
int main()
{
	char a[10];char b;
        cin.get(a,10);
	cin.get(b);
	cout<<a<<endl<<int(b);
}

输入:12345[enter]

输出:12345 【换行】 10

说明:cin.get(a,10)把12345到a中,遇到[enter]结束,但是不把[enter]删除,则把[enter]输入到b中,(enter的ASCII码为10)

#include<iostream>
using namespace std;
 
int main()
{
	char a[10];char b;
        cin.getline(a,10);
	cin.get(b);
	cout<<a<<endl<<int(b);
}

输入:12345[enter]a[enter]
输出:12345【换行】97

说明:cin.getline(a,10)把12345输入到a中,遇到{enter}结束,并把缓冲区中[enter]删除,把接下来的a输入到b中

(2)cin.getline(arrayname,size,s)与cin.get(arrayname,size,s)的区别

cin.getline(arrayname,size,s)当遇到s时会结束输入,并把s从缓冲区中删除

cin.get(arrayname,size,s)当遇到s时会结束输入,但不会删除缓冲区中的s

#include<iostream>
using namespace std;
 
int main()
{
	char a[10];char b;
    cin.get(a,10,',');
	cin.get(b);
	cout<<a<<endl<<b;
}

输入:12345,[enter]

输出:12345【换行】,

说明:cin,get不会删除缓冲区的,

#include<iostream>
using namespace std;
 
int main()
{
    char a[10];char b;
    cin.getline(a,10,',');
    cin.get(b);
    cout<<a<<endl<<int(b);
}

输入:12345,[enter]

输出:12345【换行】10

说明:cin.getline把12345输入到a中,遇到’,‘结束,并删除缓冲区的’,‘,后面的[enter]输入到b中

运用---以任何符号作为输入分隔符

例题:输入五个学生的名字,每个学生的名字不超过10个字符,输入时学生名字之间用逗号隔开,把这五个名字存储并换行输出

#include<iostream>
using namespace std;
 
int main()
{
	char a[5][10];
	int i;
	for(i=0;i<4;i++)
		cin.getline(a[i],10,',');
	cin.getline(a[i],10);
 
	for(i=0;i<5;i++)
		cout<<a[i]<<endl;
}

这样我们就可以完成完成用任何符号作为分割符的输入了!此处getline换成get是不行的,因为cin.get不会删除缓冲区中的分隔符’,‘  后续输入不能继续进行

 

转载来源 https://blog.csdn.net/a1015553840/article/details/50579396

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值