cin
cin将键盘的输入插入到输入流中,忽略空白和换行符。在需要用到bool值的地方,比如while,istream类能将cin转换为bool值,如果输入没有出现错误,则为true,否则为false,比如
while (!(cin >> number))
而while (cin)可以用来判断最近一次输入是否正确,比如要求输入的类型是int,输入了字母等类型,则为false。
如果输入的类型错误,程序会陷入死循环,而导致无法继续输入,这个时候输入状态从0变为其他状态了,也就是被阻塞了。那该怎么办呢?
我们可以使用cin.clear()将输入状态重置为0,并且用cin.ignore()将输入缓冲区中的内容清除,同时提一下,cin.ignore()函数中有两个参数,分别为数值型的a 和 字符型的 ch ,即cin.ignore( a, ch )。它表示从输入流 cin 中提取字符,提取的字符被忽略,不被使用。而每抛弃一个字符,它都要进行计数和比较字符:如果计数值达到 a 或者被抛弃的字符是 ch ,则cin.ignore() 函数执行终止;否则,它继续等待。它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。例如可以这么用,cin.ignore(1024, '\n'),通常把第一个参数设置得足够大,这样实际上是为了只有第二个参数 '\n' 起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲流中清除出去。
如果默认不给参数的话,默认参数为cin.ignore(1, EOF),即把EOF前的1个字符清掉,没有遇到EOF就清掉一个字符然后结束。
cin.get()
该函数读取一个字符,并且返回存储到一个变量中。该函数也可以输入两个变量,一个是字符数组,一个是输入字符的个数,当读取到指定的个数或者遇到换行符,停止读取,它会将换行符留在输入队列,因此第二次调用时第一个字符就是换行符,因此要用一个cin.get()来跳过换行符。这种情况它会返回一个cin对象。所以可以使用cin.get().get()的形式。
cin.get(ch)
该函数读取一个字符存储到变量ch中,并且返回一个cin对象。该函数与cin不同的地方在于它可以读取空格、回车和制表符等空白。
cin.getline()
它和cin.get()一样,都是接受两个参数,但是它与get不同的地方在于,它遇到换行符时,并没有将它留在输入序列中,而是丢弃掉。
getline(cin,str)
该函数是string类的函数,读取一行字符,存储到字符串类型str中。
vazobgzrdc
哈哈哈,写的太好了https://www.lawjida.com/
qsfskdihmi
《藏历一年》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/19064.html
gvngfkinzr
《法证先锋VI:幸存者的救赎国语》香港剧高清在线免费观看:https://www.jgz518.com/xingkong/133452.html
ledajhirjn
《辣手美人》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/89550.html
clgonynebm
《苏小姐知难而进》短片剧高清在线免费观看:https://www.jgz518.com/xingkong/26164.html
zjerkqnmmf
《生死竞赛》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/5972.html
gjtmlitmrk
《闪婚后,谢太太被宠上天(数字修复版 )》短片剧高清在线免费观看:https://www.jgz518.com/xingkong/158361.html
iygqbswtdo
《生死竞赛》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/5972.html
skpvbjpbpv
真好呢
awjotytyot
《双重智脑(周年纪念版 )》动作片高清在线免费观看:https://www.jgz518.com/xingkong/137545.html
brfhhpwqkz
兄弟写的非常好 https://www.cscnn.com/
zsrtayneou
不错不错,我喜欢看 https://www.237fa.com/