C++ IOS库清除


描述

它用于设置错误状态标志。标志的当前值被覆盖:所有位都被状态中的位替换;如果状态为 goodbit(为零),则所有错误标志都将被清除。

如果调用此函数时没有流缓冲区与流关联,则会自动设置 badbit 标志(无论参数状态中传递的该位的值是什么)。

宣言

以下是 ios::clear 函数的声明。

void clear (iostate state = goodbit);

参数

state - ios_base::iostate 类型的对象,可以将以下状态标志成员常量的任意组合作为值 -

iostate价值

(成员常数)

表示 检查状态标志的函数
好的() 结束时间() 失败() 坏的() rdstate()
好比特 无错误(零值iostate true false false false 好比特
尾数 输入操作到达文件结尾 false true false false 尾数
故障位I/O 操作逻辑错误 false false true false 故障位
坏比特I/O 操作读/写错误 false false true true 坏比特

返回值

没有任何

例外情况

基本保证- 如果抛出异常,则流处于有效状态。如果生成的错误状态标志不是 goodbit 并且为该状态设置了抛出成员异常,则它会引发成员类型失败的异常。

数据竞争

修改流对象。

对同一流对象的并发访问可能会导致数据争用。

例子

在下面的示例中解释了 ios::clear 函数。

#include <iostream>
#include <fstream>

int main () {
   char buffer [80];
   std::fstream myfile;

   myfile.open ("test.txt",std::fstream::in);

   myfile << "test";
   if (myfile.fail()) {
      std::cout << "Error writing to test.txt\n";
      myfile.clear();
   }

   myfile.getline (buffer,80);
   std::cout << buffer << " successfully read from file.\n";

   return 0;
}
ios.htm