cin>>函数:
输入结束条件:遇到Enter、Space、Tab键,保留Enter、Space、Tab键在缓存区
对结束符的处理 :输出时丢弃缓冲区中结束符(Enter、Space、Tab),下次直接读取缓冲区剩余的数据。
例如:输入abcd efgh时:
输出: abcd
efgh
第一次读取字符串时遇到空格则停止了,将abcd读入str1,并舍弃了空格,将后面的字符串给了第二个字符串str2。
cin.get()函数:
三种格式:cin.get(), cin.get(char ch), cin.get(array_name, Array_size)
输入结束条件:Enter键,将Enter键保存在缓存区中
对结束符处理:输出时不丢弃上次输入留在弃缓冲区中的Enter,但是可以接受空格字符(输出遗留的空格)。
其中cin.get() 与 cin.get(char ch)用于读取字符,他们的使用是相似的,即:ch=cin.get() 与 cin.get(ch)是等价的。
cin.get(array_name, Array_size)函数:
用来读取字符串的,可以接受空格字符,遇到Enter结束输入,按照长度(Array_size)读取字符, 不会丢弃最后的Enter字符。
cin.getline() 函数:
输入结束条件:Enter键,将Enter键不保留在缓存区,保存时将Enter键换成了“\0”保留下来
对结束符处理:输出时丢弃缓冲区中遗留的结束符Enter,同时也可以接受空格字符(输出遗留的空格)。
cin.getline(array_name, Array_size) 与 cin.get(array_name, Array_size)区别:
cin.get(array_name, Array_size)当输入的字符串超长时,不会引起cin函数的错误,后面的cin操作会继续执行,只是直接从缓冲区中取数据。但是cin.getline(array_name, Array_size)当输入超长时,会引起cin函数的错误,后面的cin操作将不再执行。
cin>>函数、cin.get()函数、cin.getline() 函数区别:
cin>>函数: 输出时丢弃缓冲区中结束符(Enter、Space、Tab),下次直接读取缓冲区剩余的数据。
cin.get()函数:对于字符,输出时不会丢弃缓冲区中结束符(Enter、Space、Tab);对于字符串,输出也不会丢弃缓冲区的结束符(Enter、Space、Tab);
cin.getline(str,n) 函数:对于字符串,输出不超过规定数量n时,会丢弃缓冲区的内容包括结束符Enter键。输出超过规定数量n时,会引起cin函数或者cin.getline() 函数的错误,后面的cin/cin.getline() 操作将不再执行.
注意:cin.get()函数与gets()函数在字符串时是有区别的,一个丢弃结束符,一个不丢弃结束符。