(1)cin>>
- 根据后面变量的类型读取数据。
- 输入结束条件 :遇到Enter、Space、Tab键。
- 当cin>>从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin>>会将其忽略并清除,继续读取下一个字符,若缓冲区为空,则继续等待;如果第一个字符读取成功,字符后面的分隔符是残留在缓冲区的,cin>>不做处理。
- 返回值:cin>>ch返回的是cin对象,可用while(cin>>ch)做文件结束判断
(2)cin.get()
- 该函数有三种重载方式:无参,一参数,二参数
cin.get(),cin.get(char ch), cin.get(array_name, Arrsize) - 输入结束条件:Enter键
不丢弃且可读取缓冲区中的Enter、space和TAB。 - cin.get()与cin.get(char ch)用于从缓冲区中读取一个字符,ch=cin.get()与cin.get(ch)是等价的。
cin.get(array_name, Arsize)是用来读取字符串的,可以接受空格字符,遇到Enter结束输入,按照长度(Arsize)读取字符, 会丢弃最后的Enter字符(但是不丢弃SPACE和TAB)。 - 返回值:cin.get()返回的是所读字符,cin.get(char ch)返回cin对象。
tips:cin.get()可用于在下一次读取前清空残余缓存及Enter、space和TAB判断等。
(3)cin.getline()
- cin.getline(array_name,Arsize)与 cin.get(array_name,Arsize)的读取方式差不多,以Enter结束,可以接受空格字符。按照长度(Arsize)读取字符, 会丢弃最后的Enter字符。
- 区别:cin.getline()实际上有三个参数,cin.getline(接受字符串,接受个数,结束字符) ,当第三个参数省略时,系统默认为’\0’
cin.get(array_name, Arsize)当输入的字符串超长时,不会引起cin函数的错误,后面的cin操作会继续执行,只是直接从缓冲区中取数据。但是cin.getline()当输入超长时,会引起cin函数的错误,后面的cin操作将不再执行。