【C++】cin、getline、cin.get、cin.getline

本文详细介绍了C++中用于输入的cin、getline以及cin.get和cin.getline的区别。cin在遇到[enter],[space],[tab]时结束当前输入,而getline允许指定分隔符来结束读取。cin.get()与cin.getline()在处理[enter]字符和指定结束符上有所不同,cin.getline()会删除缓冲区中的[enter],而cin.get()则不会。" 117042828,10552535,C语言实现数码管15秒倒计时定时器程序,"['嵌入式开发', '微处理器', '定时器驱动', 'C语言编程', '数码管显示']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. cin

  • 遇到[enter],[space],[tab]表示当前输入结束,下一个输入从非[enter],[sapce],[tab]开始,按Ctrl+Z或键入EOF回车即可退出
  • 舍弃所有缓冲区的[enter],[space],[tab]
string s;
while(cin>>s)
{
	cout<<s<<endl;
}

2. getline

  • 头文件 #include<string>
  • istream& getline ( istream& is , string& str , char delim );
  • 默认回车符停止读入,按Ctrl+Z或键入EOF回车即可退出
  • 例:getline(cin,line,’#’);
    istream& is 表示一个输入流(cin)
    string& str表示存放从输入流读入的字符串(line)
    char delim表示遇到#停止读入(‘#’)
string s;
while(getline(cin, s, '#'))
{
	cout<<s<<endl;
}


分析:此时#是一个字符串结束标志,换行‘/n’被正常读入进输入流cin。
所以输入流:how are you# doing /n i am fine #and you?/n^Z
字符串:how are you
字符串:doing
i am fine
字符串:and you?
退出程序

3. cin.get和cin.getline

  1. cin.getline(arrayname,size)与cin.get(arrayname,size)的区别:
  • cin.get(arrayname,size)当遇到[enter]时会结束目前输入,他不会删除缓冲区中的[enter]
  • cin.getline(arrayname,size)当遇到[enter]时会结束当前输入,但是会删除缓冲区中的[enter]
  1. cin.getline(arrayname,size,s)与cin.gei(arrayname,size,s)的区别:
  • cin.getline(arrayname,size,ch)当遇到ch时会结束输入,并把s从缓冲区中删除
  • cin.get(arrayname,size,ch)当遇到ch时会结束输入,但不会删除缓冲区中的s

3.1 cin.get

  • a = cin.get() 或者 cin.get(a)::单字符的输入,用途是输入一个字符,把它的ASCALL码存入到a中。

注释:cin.get()在缓冲区遇到[enter],[space],[tab]继续留在缓冲区

  • cin.get(arrayname,size,s) 把数据输入到arrayname字符数组中,当到达长度size时结束或者遇到字符s时结束

注释:a必须是字符数组,即char a[]l类型,不可为string类型;size为最大的输入长度;s为控制,遇到s则当前输入结束缓存区里的s将被舍弃

3.2 cin.getline

  • cin.getline()的用法和cin.get()用法大致相同,没有一参数用法,只有二参数,三参数两类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值