1.基本介绍
cin.get()
和c语言中getchar()函数功能类似。
cin.get(char & ch)
从输入读取一个字符,并储存到ch中,返回值为istream类(此处即为cin)。
cin.get(char*array,int size)
从输入中读取字符串储存到数组array中,读取size-1个字符或遇到\n结束。但他并不会读取换行符,会将换行符留在输入队列中,所以最好用cin.get()清除掉换行符。
读取size-1个字符后,会自动在数组末尾添加\0。若读取字符少于size-1,则会在剩余未写入字符的地方都填充上\0。
cin.getline(char *array, int size)
从输入中读取字符串储存到数组array中,读取size-1个字符或遇到\n结束。但他会读取换行符并丢弃。
读取size-1个字符后,会自动在数组末尾添加\0。若读取字符少于size-1,则会在剩余未写入字符的地方都填充上\0。
2.关于cin.get()和cin.getline()读取空行的结果(空行即只输入一个换行符):
cin.get():
将数组中所有项都设置为空字符,并阻断后续输入。可以用cin.clear()恢复。所以当用其读取整行时,用cin.get()清除掉换行符是很重要的。
注意:clear函数恢复读取后并不会将缓冲区中的换行符读走。
cin.getline():
读取并丢弃换行符并将数组中所有项都设置为空字符,但不会阻断后续输入。
3.关于string类型输入
可以直接由cin输入:cin》xxx
由istream类中的友元函数getline(istream cin,string s)