C++输入输出缓冲区的概念


看到了cin.ignore()函数.不懂就上网找了用法,扩展了缓冲区这个概念.
 
cin.ignore(a,ch)方法是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用。每抛弃一个字符,它都要计数和比较字符:如果计数值达到a或者被抛弃的字符是ch,则cin.ignore()函数执行终止;否则,它继续等待。它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。比如可以这么用:cin.ignore(1024,'\n'),通常把第一个参数设置得足够大,这样实际上总是只有第二个参数'\n'起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。
 
#include <iostream>
 using namespace std;
 void main()
 {
 int a,b,c;
 cout<<"input a:";
 cin>>a;
 cin.ignore(1024, '\n');
 cout<<"input b:";
 cin>>b;
 cin.ignore(1024, '\n');
 cout<<"input c:";
 cin>>c;
 cout<<a<<"\t"<<b<<"\t"<<c<<endl;
 }
 
如果没有cin.ignore(),可以一次输入3个数,用空格隔开就好了。。可是非常不美观。。有了cin.ignore()函数这样才是我们想要的结果。

相关内容