cin.ignore() cin.sync()的区别
来源:互联网 发布:闪字风扇软件下载 编辑:程序博客网 时间:2024/06/05 00:52
一、cin.clear()、cin.sync()
如果标示符没有改变那么即使清除了数据流也无法输入。所以两个要联合起来使用。例如:
#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)
原文地址:http://blog.sina.com.cn/s/blog_8d3652760100wl9r.html
- cin.ignore() cin.sync()的区别
- cin.clear()与cin.sync()与cin.ignore()
- 缓冲区及流状态、cin.sync()、cin.clear()、cin.ignore()
- cin , cin.get() , cin.getline() , getline() , cin.ignore() 的用法
- cin.ignore()的用法
- cin.ignore的用法
- cin.ignore()的用法
- cin.ignore()的使用
- cin.ignore的用法
- IO:cin.clear() 和 cin.sync() 的区别
- cin>> , cin.getline() 的区别 ,cin.ignore() 缓冲区等知识深入
- cin.ignore()
- cin.ignore
- cin.ignore()函数的用法
- cin.ignore()函数的使用
- cin.ignore()函数的用法
- cin.ignore()函数的用法
- cin.ignore()函数的用法
- Unity3D与MySQL
- linux下find命令的一个坑
- iOS关键字含义(基础)
- DISTINCT的巧妙用法
- LeetCode 237:Delete Node in a Linked List
- cin.ignore() cin.sync()的区别
- 快速计算乘方的算法
- sqlite日期和时间
- 【Leetcode】Contains Duplicate II
- linux下 jdk1.8安装
- JAVA验证URL是否有效连接的方法
- [LeetCode]008-String to Integer
- 大家快来A水题
- 【C语言提高25】二级指针做输入的第二种内存模型:二维数组