in.clear()、cin.sync()和cin.ignor()的用法
来源:互联网 发布:学java去哪儿好 编辑:程序博客网 时间:2024/05/01 16:01
如果标示符没有改变那么即使清除了数据流也无法输入。所以两个要联合起来使用。例如:
#include<iostream>
using namespace std;
int main()
{
}
二、cin.ignore(a,ch)
它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。
比如可以这么用:
cin.ignore(1024,'\n'),通常把第一个参数设置得足够大,这样实际上总是只有第二个参数'\n'起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。
三、cin.sync()和cin.ignor()的比较
另外,对于绑定了输出的输入流,调用sync(),还会刷新输出缓冲区。
但由于程序运行时并不总是知道外部输入的进度,很难控制是不是全部清除输入缓冲区的内容。通常我们有可能只是希望放弃输入缓冲区中的一部分,而不是全部。比如清除掉当前行、或者清除掉行尾的换行符等等。但要是缓冲区中已经有了下一行的内容,这部分可能是我们想保留的。这个时候最好不要用sync()。可以考虑用ignore函数代替。
cin.ignore(numeric_limits<std::streamsize>::max(),'/n');//清除当前行
cin.ignore(numeric_limits<std::streamsize>::max());
不要被长长的名字吓倒,numeric_limits<std::streamsize>::max()不过是climits头文件定义的流使用的最大值,你也可以用一个足够大的整数代替它。
使用ignore显然能比sync()更精确控制缓冲区。(1)
(1)参考于:http://blog.csdn.net/lann64/article/details/3544479
- in.clear()、cin.sync()和cin.ignor()的用法
- cin.clear()、cin.sync()和cin.ignor()的用法
- cin.clear()、cin.sync()和cin.ignor()的用法
- cin.clear()、cin.sync()和cin.ignor()的用法
- cin.clear()、cin.sync()和cin.ignor()的用法
- cin学习--------cin.get()和cin.getline(),cin.clear(),cin.sync()等的用法.
- cin.clear()和cin.sync()
- cin.clear和cin.sync
- cin.clear()和cin.sync
- cin.clear cin.sync 等函数用法
- IO:cin.clear() 和 cin.sync() 的区别
- cin用法介绍(特别是学习了cin.clear和cin.sync)
- cin用法介绍(特别是学习了cin.clear和cin.sync)
- cin用法介绍(特别是学习了cin.clear和cin.sync)
- cin用法介绍(特别是学习了cin.clear和cin.sync)
- 有关cin.fail(),cin.clear(),cin.sync的应用
- 有关cin.fail,cin.clear,cin.sync的应用
- cin.clear()与cin.sync()
- 编译预处理
- 三菱PLC编程软件GX Developer操作方法
- Maven知识的学习
- 杂乱笔记-myday2
- Detecting Common Gestures
- in.clear()、cin.sync()和cin.ignor()的用法
- Objective-C的内省(Introspection)小结
- 4. 29 C语言 程序结构-初级
- 数据库 删除表原理
- xhost unable to open display解决方法
- 4. 30 C语言 程序结构-高级
- C#动态获取类的属性名和值
- 5. 04 C语言 数组,字符串
- iOS集成第三方登录的使用