文件IO

IO类
>>与<<以及getline函数支持所有的输出输出流,getline用法:string s;getline(cin,s);
1.iostream头文件
  • IO对象不可拷贝或者赋值,因此不可以用作函数传参或者返回类型,可以用引用,但不能用const,因为任何读写操作都会改变流的状态;也不可以用一个IO对象去初始化另外一个IO对象;
  • 流状态   IO库定义了一种iostate类型,是一种位集合类型,即通过一个二进制数不同位上是1还是0,来代表不同的状态。它包含四种类型的状态,badbit置位表示系统错误,不可恢复,failbit置位表示可恢复的错误,如输入类型错误等,到达文件结束位置时,eofbit和failbit都会被置位,goodbit值为0,表示流未发生错误。cin.good()当所有错误都未置位时返回true;cin.bad()当系统错误返回true;cin.fail()当发生三种任意一个错误都返回true。if(cin>>s)等价于if(!cin.fail())。
  • cin.clear()将流复位  cin.rdstate返回当前流状态   cin.setstate()输入流状态,设置为相应的状态
  • 进行输出操作时,系统可以将多个cout要输出的内容都放在缓冲区,然后一次写出,提升性能。通过endl可以换行并且刷新缓冲区,cout<<""<<flush刷新缓冲区,不加任何字符,ends刷新缓冲区,并添加空格。
  • cin.tie(&cout) 关联两个流,形参是指向ostream的指针。cin.tie()返回指向输出流的指针,如果没有关联任何流,返回空指针。
2.文件的输入和输出

int  main ( int  argc , char  * argv [])
{
      string  temp ;
      vector < string >  str ;
      ifstream  in( "F:/a.txt" , ifstream :: in );  //还可以in.open("F:/a.txt")
      if  (!in)
     {
          cout  <<  "err" ;
     
     }
      while  ( getline (in, temp ))
     {
          str . push_back ( temp );
     }
     in. close ();
      auto  it  =  str . begin ();
      while  ( it != str . end ())
     {
          cout  << * it << endl ;
         ++ it ;
     }
      system ( "pause" );
      return  0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值