• check if a state is ok

    while(cin >> word)
    // ok: read successful

  • condition states are constants defined in ios_base as public members
    • ios_base::badbit : corrupted.

      • set when the error involves the loss of integrity of the stream, which is likely to persist even if a different operation is attempted on the stream.
      • indicates a system-level failure, such as an unrecoverable read or write error.
      • usually not possible to use a stream once badbit has been set.
    • ios_base::failbit : failed.
      • set by an operation when the error is related to the internal logic of the operation itself; further operations on the stream may be possible.
      • is set after a recoverable error, such as reading a character when numeric data was expected.
      • often possible to correct such problems and continue using the stream.
    • ios_base::eofbit : hit end-of-file.
    • ios_base::goodbit : not in an error state.
      • indicating none of the other bits is set.
  • Note
    • At least one of failbit and badbit is set when an error occured during an input operation.
    • Failing to read due to reaching the end-of-file sets both eofbit and failbit.
    • fail() is a synonym of ios::operator!
  • checks
    • s.bad() : eofbit is set.
    • s.fail() : failbit or badbit is set.
    • s.eof() : eof is set.
    • s.good() : none of above three states is set.
    • s.is_open() :
    • s.clear() : reset all condition values in the stream to valid state.
  • operation on flags
    • retrieve : basic_ios::rdstate
    • set : basic_ios::setstate
  • about types:
    • std::ios_base::iostate is type for stream error state flags

References:

  1. http://www.cplusplus.com/reference/ios/ios/fail/
  2. http://www.cplusplus.com/reference/ios/ios/operator_not/
  3. http://stackoverflow.com/questions/6255339/checking-if-a-file-opened-successfully-with-ifstream
  4. http://www.cplusplus.com/forum/beginner/6033/
  5. http://www.cplusplus.com/doc/tutorial/files/

right way check file open and end的更多相关文章

  1. 电脑每次开机都出现check file system on:C 的解决办法

    电脑每次开机都出现check file system on:C 的解决办法... ----------------------------------------- ----------------- ...

  2. windows安装dcm4chee 出错 check file system group LOSSY_STORAGE for deletion

    错误情景: 解决方法: 更改服务的监听端口(参考DICOM:Ubuntu14环境下安装dcm4chee+oviyam2.1)

  3. 12 Useful “df” Commands to Check Disk Space in Linux

    On the internet you will find plenty of tools for checking disk space utilization in Linux. However, ...

  4. Analysis about different methods for reading and writing file in Java language

    referee:Java Programming Tutorial Advanced Input & Output (I/O) JDK 1.4+ introduced the so-calle ...

  5. error_Could not load file or assembly

    原文链接 Could you be missing the loaded assembly from your configuration file? Ensure you have somethin ...

  6. udev example -- detect usb and write test file

    之前学习了下Udev,就随便做了个测试小程序.....设计什么的也没考虑,就实现了一个基本功能,插入U盘,识别,循环检测到有特定文件后,就然后往U盘里面写数据,插拔多次,都能正常工作. 里面的warn ...

  7. Fix Scheduled Task Won’t Run for .BAT File

    Step 1: Check File/Folder Permissions The first step to fixing this issue is ensuring that the accou ...

  8. 使用Monit监控本地进程

    目前用它监控某些服务,失败自动重启,同时监控特定的日志文件,如果有变化,就发邮件报警 安装不细写了,网上好多 我先用cat /proc/version看了下我的系统是el6的,于是wget http: ...

  9. SSD框架训练自己的数据集

    SSD demo中详细介绍了如何在VOC数据集上使用SSD进行物体检测的训练和验证.本文介绍如何使用SSD实现对自己数据集的训练和验证过程,内容包括: 1 数据集的标注2 数据集的转换3 使用SSD如 ...

随机推荐

  1. 交叉编译安装ARM平台上的Qt

    一.宿主机环境搭建: 编译需要x11库的支持,在Ubuntu下安装命令: sudo apt-get install libx11-dev libxext-dev libxtst-dev 二.下载源码包 ...

  2. python 远程统计文件

    #!/usr/bin/python #encoding=utf-8 import time import os import paramiko import multiprocessing #统计文件 ...

  3. C语言实现的OOP

    我倒不是为了OOP而OOP,实在是OOP的一些特征,例如封装,多态其实是软件工程思想,这些思想不分语言,遵循了这些思想可以使得程序更有弹性,更易修改和维护,避免僵化,脆弱 shape.h 该文件定义的 ...

  4. 开心菜鸟系列学习笔记------------javascript(6)

    一.作用域链            1)函数的生命周期:            函数的生命周期分为创建和激活阶段(调用时),让我们详细研究它.            作用域链与一个执行上下文相关,变量 ...

  5. 感知机(perceptron)

    二类分类的线性分类模型,属于判别模型,利用梯度下降法对损失函数进行极小化求得感知机模型分为原始形式和对偶形式,是神经网络和支持向量机的基础 由输入控件到输出控件的如下函数: f(x)=sign(W.X ...

  6. 磁盘IO性能监控(Linux 和 Windows)

    磁盘IO性能监控(Linux 和 Windows) 作者:终南   <li.zhongnan@hotmail.com> 磁盘的IO性能是衡量计算机总体性能的一个重要指标.Linux提供了i ...

  7. C++11 new feature

    C++11 在类中引入了Move Constructor and the Move Assignmnt Operaetor,所谓‘move’指的是在复制对象时,left object 不用再创建资源, ...

  8. hdu4010-Query on The Trees(lct分裂合并加值查询最大值)

    代码 #include<cstdio> #include<cstring> #include<string> #include<vector> #inc ...

  9. ZooKeeper架构设计及其应用

    ZooKeeper是一个开源的分布式服务框架,它是Apache Hadoop项目的一个子项目,主要用来解决分布式应用场景中存在的一些问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置管理等 ...

  10. 十分钟学会写shell脚本

    大家好!我是handsomecui,下面我为大家讲解一下shell脚本的写法,讲的不好的地方,欢迎大家留言拍砖. 1.在linux下会写shell脚本是非常重要的,下面我参照例子给大家展示几个脚本,顺 ...