c++中的cin,cin.get(),cin.getline()读取字符串

人老了,记性不好了,看一篇忘一遍,还是梳理下吧!这里所谓的字符串为C-风格字符串,即含有空字符结束符的字符数组

1)先来看一看利用cin读取字符串

cin使用空白(空格、制表符、换行符(通过回车符输入))来确定字符串的结束位置,这意味着通过cin读入字符数组时只读取一个单词空白仍保留在流中,读取该单词后,cin将该字符串放在数组中,并自动在结尾加入空字符(‘\0’)流中单词之前的空白将被忽视,而直接保存单词;单词之后的空格仍保存在流中!

2)再看看cin.getline(char*,int)读取字符串

cin.getline(char*,int)将int-1个字符读取到数组char*中,最后一个位置用来存储'\0'。该函数在读取指定数目的字符或者遇到换行符时停止读取。该函数从流中抽取出换行符,但不保存换行符

3)再看看cin.get(void)读取字符串

cin.get()往往用来从流中抽取换行符,防止下一次读入时因读入换行符而提前结束。往往和get(a,b)结合使用,因为get(a,b)不从流中抽取换行符

4)再看看cin.get(a)读取字符串(一个引用类型参数

cin.get(ch)该读取方法可以补救cin读取方法的缺点,即可以将空白读入并存储,但是该方法只能一个字符一个字符读取,往往对于字符串的读取不太方便,故用的较少。

5)再看看cin.get(char *,int)读取字符串(两个参数)

cin.get(char*,int)与cin.getline(char*,int)函数很相似,唯一不同的地方在于:get函数不从流中抽取换行符,换行符仍保留在流中,因为其后往往要跟cin.get(),用来抽取换行符。

你可能感兴趣的:(c++)