文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院工具软件文字输入C++中的文件输入/输出(4):检测输入/输出的状态标志
精品推荐
特别推荐
·输入法技巧放送:极点五笔技巧两则
·模拟键盘按键 自动输入文字
·你知道吗?IE地址栏中还能输入这些东西
·[韩服]韩文输入法教程
·Win 2000/XP系统输入法丢失解决方法
·极品五笔的安装方法
·拼音五笔输入法技巧集
·智能ABC输入法实用技巧
·五笔二级简码--五笔字型
·让打字更快!搜狗拼音输入法八大妙用
热点TOP10
·如何显示输入法图标(输入法图标消失)
·[图文]五笔字根表
·输入法技巧放送:极点五笔技巧两则
·IE7在vista下无法使用五笔输入(86)
·Word:轻松输入“日语问候语”
·极品五笔的安装方法
·C++中的文件输入/输出(4):检测输入/输出的状态标志
·让打字更快!搜狗拼音输入法八大妙用
·[图文]一级简码--五笔字型
·[组图]五笔字根拆分

C++中的文件输入/输出(4):检测输入/输出的状态标志

日期:2008年7月16日 作者: 查看:[大字体 中字体 小字体]


       

       
C++中的文件输入/输出(4):检测输入/输出的状态标志    Kusk(翻译)  
关键字     C++ 文件 FileI/O 入门 状态标志 
出处     http://www.cpp-home.com/FileIO_tutorial.php 

检测输入/输出的状态标志

      在此我不打算解释“标志(flags)”一词的含义,不过假如你真的完全不理解关于这方面的概念,那么将本章读过一遍之后也许你对此会得到一些认识,我也相信你同样能理解这部分的理论。尽管如此,如果你还是不明白标志在C++中的含义,我推荐你阅读一些关于这个主题的资料。好,让我们开始吧。

      C++中负责的输入/输出的系统包括了关于每一个输入/输出操作的结果的记录信息。这些当前的状态信息被包含在io_state类型的对象中。io_state是一个枚举类型(就像open_mode一样),以下便是它包含的值(译注:表中第一列为枚举值的名称,第二列为该值相应含义的描述):

godbit
 无错误
 
Eofbit
 已到达文件尾
 
failbit
 非致命的输入/输出错误
 
badbit
 致使的输入/输出错误
 
      有两种方法可以获得输入/输出的状态信息。一种方法是通过调用rdstate()函数,它将返回当前状态的错误标记(上表中提到的)。例如,假如没有任何错误,则rdstate()会返回goodbit.另一种方法则是使用下面任何一个函数来检测相应的输入/输出状态:

bool bad();
bool eof(); //还记得它么?“不断读取文件内容直到到达文件末尾!”
bool fail(); //噢,这也是老朋友……检测一个打开操作是否成功
bool good();

      假如badbit标志被标设(译注:原文为“If the badbit flag is up”,这里将“is up”译为“标设”,意即出现了badbit对应的错误,badbit状态被置为当前的错误状态,下同),则bad()函数返回true;假如failbit标志被标设,则fail()函数返回true;假如没有错误发生(goodbit标志被标设),则good()函数返回true;假如操作已经到达了文件末尾(eofbit被标设),则eof()函数返回true.

      如果错误发生,你必须清除这些错误状态,以使你的程序能正确适当地继续运行——如果你这么打算的话。要清除错误状态,需使用clear()函数。此函数带一个参数,它是你将要设为当前状态的标志值。假使你想让你的程序“清清爽爽”地运行下去,只要将ios::goodbit作为实参。你将在以下内容中看到示例代码。

      我将向你展示示例代码,以巩固你所学到的理论知识。
示例1:简单的状态检测
// 实际应用中可将 FileStream替换成你相应在使用的文件流句柄

    if(FileStream.rdstate() == ios::eofbit)
       cout << "End of file! ";
    if(FileStream.rdstate() == ios::badbit)
       cout << "Fatal I/O error! ";
    if(FileStream.rdstate() == ios::failbit)
       cout << "Non-fatal I/O error! ";
    if(FileStream.rdstate() == ios::goodbit)
cout << "No errors! ";

示例2:clear()函数

[1] [2] [3] 下一页 




上一篇:C++中的文件输入/输出(3):掌握输入/输出流

下一篇:CPP程序--陀螺又称旋转矩阵

相关文章:
·如何显示输入法图标(输入法图标消失)
·dll文件下载
·局域网文件共享详解
·输入法技巧放送:极点五笔技巧两则
·利用word将PDF转换DOC文件的方法
·java做的比较完善的FTP连接上传下载文件
·轻松在线制作各种Logo标志
·IE7在vista下无法使用五笔输入(86)
·MPEG、RM、WMV电影文件格式转换指南
·从视频文件中提取声音的方法
相关软件:
·最强文件加密锁2007
·紫光华宇拼音输入法V6-Final
·Ultra RM Converter(Real文件转换分割,合并)V3.3.0916 汉化版
·西门子plc软件及教程 文件类型 其它介绍
·文件夹加密器V9.6
·搜狗拼音输入法V3.0 正式版
·二笔型码输入法 V7.1
·风清扬五笔输入法大字库版 V6.2.0
·粤音输入法 V6.08
·搜狗拼音输入法(可自定义字体、大小、颜色等)V3.0Beta2

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot