笔记:cin.* 的使用

1. cin.peek

返回值是一个char型的字符,其返回值是指针指向的当前字符,但它只是观测 指针停留在当前位置并不后移;如果要访问的字符是文件结束符,则函数值是EOF(-1)

可以用于输入未满长度的不指定个数整型,如:

int  length;

cin >> length; \\后有回车

cin. get();\\吞掉回车

while (cin.peek() != '\n'){

  cin >> .....

}

 

2. cin.get

(1) cin.get() 用来从指定的输入流中提取一个字符(包括空白字符),函数的返回值就是读入的字符。若遇到输入流中的文件结束符,则函数值返回文件结束标志EOF(End Of File),一般以-1代表EO

(2) cin.get(字符数组, 字符个数n, 终止字符) 

其作用是从输入流中读取n-1个字符,赋给指定的字符数组(或字符指针指向的数组),如果在读取n-1个字符之前遇到指定的终止字符,则提前结束读取。如果读取成功则函数返回true(真),如失败(遇文件结束符) 则函数返回false(假)。

 

3. cin.fail

判断流操作是否失败,如果输入失败(输入类型与定义不符)就会返回true

 

4. cin.good

 功能与cin.fail相反

 

5. 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就清掉一个字符然后结束。

 

6. cin.clear

清除cin输入的错误状态标识,将其归为0(输入正常)。使用cin.rdstate 可以查看输入状态,0--正确

 

7. cin.sync

清空输入流。cin.sync在有的环境下无法实现时,改用cin.ignore(std::numeric_limits<int>::max(),'\n');

 

参考:

https://blog.csdn.net/u012948302/article/details/54667688

https://blog.csdn.net/sijiazhentan/article/details/7765616

https://blog.csdn.net/wxbmelisky/article/details/48596881

https://www.cnblogs.com/tonglingliangyong/p/3908463.html

https://www.cnblogs.com/seamusopen/p/8451883.html

 

posted @ 2021-03-08 11:31  caseyz)  阅读(294)  评论(0)    收藏  举报