c++的输入

参考:https://blog.csdn.net/a1015553840/article/details/50579396 

一、cin

cin遇到缓冲区中的[enter],[space],[tab]会结束当前输入,并舍弃[enter],[space],[tab],继续下一项输入,当有连续[space],[enter],[tab]会全部舍弃。

二、cin.get()

1、一参数

用法:a = cin.get()  或者  cin.get(a)

注释:cin.get()在缓冲区遇到[enter],[space],[tab]不会作为舍弃,而是继续留在缓冲区中。

2、二参数
用法:cin.get(arrayname,size)  把字符输入到arrayname中,长度不超过size
注释:arrayname必须是char[]类型,即char数组类型,不可以为string类型;size是指输入长度,即允许输入的最大长度。
3、三参数
用法:cin.get(arrayname,size,s)  把数据输入到arrayname字符数组中,当到达长度size时结束或者遇到字符s时结束
注释:a必须是字符数组,即char a[]l类型,不可为string类型;size为最大的输入长度;s为控制,遇到s则当前输入结束缓存区里的s将被舍弃。

三、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]

2、cin.getline(arrayname,size,s)与cin.get(arrayname,size,s)的区别
cin.get(arrayname,size,s)当遇到s时会结束输入,但不会删除缓冲区中的s
cin.getline(arrayname,size,s)当遇到s时会结束输入,并把s从缓冲区中删除

四、getline()

getline(istream is,string str,结束符)

此处结束符为可选参数(默认依然为enter)。然而,getline()与前面的诸多存在的差别在于,它string库函数下,而非前面的istream流,所有调用前要在前面加入#include<string>。与之对应这一方法读入时第二个参数为string类型,而不再是char*,要注意区别。另外,该方法也不是遇到空白字符(tab, space, enter(当结束符不是默认enter时))就结束输入的,且会丢弃最后一个换行符。
 


 

猜你喜欢

转载自blog.csdn.net/zero_1778393206/article/details/86697634