Chinaunix首页 | 论坛 | 博客
  • 博客访问: 334268
  • 博文数量: 214
  • 博客积分: 4258
  • 博客等级: 上校
  • 技术积分: 2021
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-02 09:16
个人简介

http://blog.csdn.net/ly21st http://ly21st.blog.chinaunix.net

文章分类

全部博文(214)

文章存档

2018年(16)

2015年(1)

2014年(2)

2012年(22)

2011年(173)

分类: C/C++

2011-11-20 19:20:28

#include
#include
using namespace std;
#include
#include
/**
回复流状态之后要清空缓冲区,不然还是读取你最近一次输入的错误数据,在cin >> n之前加入如下代码:
C/C++ code
if(!cin.good()) { cin.clear(); cin.sync();//清空缓冲区 }
*/
 
 
    
int main()
{
    int ival;
    while(cin>>ival,!cin.eof()) {
       if (cin.bad())
          throw runtime_error("io stream corrupted");
       if(cin.fail()) {
          cerr<<"bwd data,try again\n";
          //cin.clear(iostream::failbit);
          cin.clear();   //流复位
          cin.sync();    //清空缓冲区
         
          continue;
       
       }
    }
    cin.clear();
    cout<<"输入一个数:";
    int a;
    cin>>a;
    cout<    
   getchar();
   getchar();
   
}

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

练习1

         编写一个函数,其唯一的形参和返回值都是istream&类型。该函数一直读取流直到文件结束符为止,还应将读取的内容输出到标准输出中。最后,重设流使其有效,并返回该流。

#include

#include

using namespace std;

 

#include

#include

 

istream& get(istream &in)

{

         int ival;

         while(in>>ival,!in.eof())  {

            if(in.bad() )

               throw runtime_error("io stream error\n");

            if (in.fail()) {

               cerr<<"bad data, try again\n";

               in.clear();

               in.ignor(200,' ');

               continue;

            }

            cout<

         }

         in.clear();

         return in;

}

  

  

    

int main()

{

   get(cin); 

   getchar();

   getchar();

   

}

 


阅读(661) | 评论(0) | 转发(0) |
0

上一篇:搭建afa3.0环境

下一篇:文件流操作

给主人留下些什么吧!~~