定义于头文件 <ios>
| template<      class CharT,  | 
类 std::basic_ios 提供设施,以对拥有 std::basic_streambuf 接口的对象赋予接口。数个 std::basic_ios 对象能指涉一个实际的 std::basic_streambuf 对象。
继承图

还提供了两个对常见的字符类型的特化:
| 类型 | 定义 | 
ios | basic_ios<char> | 
wios | basic_ios<wchar_t> | 
 状态函数
 
检查是否没有发生错误,例如是否可执行I/O操作
std::basic_ios<CharT,Traits>::good 
|   bool good() const;  | 
若流上的最近 I/O 操作成功完成则返回 true 。特别是返回 rdstate() == 0 的结果。
设置流状态位的条件列表,见 ios_base::iostate 。
参数
(无)
返回值
若流未出现错误则为 true ,否则为 false 。
检查是否到达了文件末尾
std::basic_ios<CharT,Traits>::eof 
|   bool eof() const;  | 
若关联流已抵达文件尾则返回 true 。尤其是若 rdstate() 中设置了 eofbit 则返回 true 。
设置 eofbit 的条件列表见 ios_base::iostate 。
参数
(无)
返回值
若遇到文件尾条件则为 true ,否则为 false 。
注意
此函数只报告最近的 I/O 操作所设置的流状态;它不检测关联的数据源。例如,若最近的 I/O 为返回文件最后字节的 get() ,则 eof() 返回 false 。下个 get() 无法读取任何内容,并设置 eofbit 。之后 eof() 才返回 true 。
典型使用中,输入流处理在任何错误上停止。然后能用 eof() 和 fail() 区别不同的错误条件。
检查是否发生了可恢复的错误
std::basic_ios<CharT,Traits>::fail 
|   bool fail() const;  | 
若关联流上已发生错误则返回 true 。特别是若 rdstate() 中设置了 badbit 或 failbit 则返回 true 。
设置 failbit 或 badbit 的条件列表见 ios_base::iostate 。
参数
(无)
返回值=
若已出现错误则为 true ,否则为 false 。
检查是否已发生不可恢复的错误
std::basic_ios<CharT,Traits>::bad 
|   bool bad() const;  | 
若关联的流上已出现不可恢复的错误则返回 true 。尤其是若 rdstate() 中设置了 badbit 则返回 true 。
设置 badbit 的条件列表见 ios_base::iostate 。
参数
(无)
返回值
若出现不可恢复的错误则为 true ,否则为 false 。
检查是否有错误发生(fail() 的同义词)
std::basic_ios<CharT,Traits>::operator! 
|   bool operator!() const;  | 
若关联流上已出现错误则返回 true 。特别是若 rdstate() 中设置了 failbit 或 badbit 则返回 true 。
参数
(无)
返回值
若已出现错误则为 true ,否则为 false 。
调用示例
#include <iostream>
#include <fstream>
#include <cstdlib>
int main()
{
    std::ifstream file("test.txt");
    if (!file) // operator! 用于此
    {
        std::cout << "File opening failed\n";
        return EXIT_FAILURE;
    }
    // 典型的 C++ I/O 循环以 I/O 函数的返回值为循环控制条件,
    // operator bool() 用于此
    for (int n; file >> n;)
    {
        std::cout << n << ' ';
    }
    std::cout << '\n';
    if (file.bad())
    {
        std::cout << "I/O error while reading\n";
    }
    else if (file.eof())
    {
        std::cout << "End of file reached successfully\n";
    }
    else if (file.fail())
    {
        std::cout << "Non-integer data encountered\n";
    }
}
 
 
检查是否没有发生错误(!fail()的同义词)
std::basic_ios<CharT,Traits>::operator bool 
|   operator void*() const;  | (1) | (C++11 前) | 
|   explicit operator bool() const;  | (2) | (C++11 起) | 
检查流是否无错误。
1) 若 fail() 返回 true 则返回空指针,否则返回非空指针。此指针可隐式转换为 bool ,并可用于布尔语境。
2) 若流无错误且已为 I/O 操作就绪则返回 true 。尤其是返回 !fail() 。
此运算符使得以流和返回到流引用的函数为循环条件可行,产生惯用的 C++ 输入循环,例如 while(stream >> value) {...} 或 while(getline(stream, string)){...} 。这种循环仅若输入操作成功才执行循环体。
参数
(无)
返回值
若流无错误则为 true ,否则为 false 。
调用示例
#include <iostream>
#include <sstream>
int main()
{
    std::istringstream s("1 2 3 error");
    int n;
    std::cout << std::boolalpha << "s is " << static_cast<bool>(s) << '\n';
    while (s >> n)
    {
        std::cout << n << '\n';
    }
    std::cout << "s is " << static_cast<bool>(s) << '\n';
} 
 
返回状态标志
std::basic_ios<CharT,Traits>::rdstate 
|   iostate rdstate() const;  | 
返回当前错误状态。
参数
(无)
返回值
当前错误状态。它是位掩码类型,并且能是下列常量的组合:
| 常量 | 解释 | 
| goodbit | 无错误 | 
| badbit | 不可恢复的流错误 | 
| failbit | 输入/输出操作失败(格式化或提取错误) | 
| eofbit | 关联的输出序列已抵达文件尾 | 
调用示例
#include <iostream>
#include <sstream>
int main()
{
    std::ostringstream stream;
    if (stream.rdstate() == std::ios_base::goodbit)
    {
        std::cout << "stream state is goodbit\n";
    }
    stream.setstate(std::ios_base::eofbit);
    // 检查状态为准确的 eofbit (无 failbit 且无 badbit )
    if (stream.rdstate() == std::ios_base::eofbit)
    {
        std::cout << "stream state is eofbit\n";
    }
} 
设置状态标志
std::basic_ios<CharT,Traits>::setstate 
|   void setstate( iostate state );  | 
在当前已设置表之外,设置流错误状态标志 state 。实质上调用 clear(rdstate() | state) 。可能抛出异常。
参数
| state | - | 要设置的流错误状态标志。能为下列常量的组合: 
    
  | 
返回值
(无)
调用示例
#include <iostream>
#include <sstream>
int main()
{
    std::ostringstream stream;
    if (!stream.fail())
    {
        std::cout << "stream is not fail\n";
    }
    stream.setstate(std::ios_base::failbit);
    if (stream.fail())
    {
        std::cout << "now stream is fail\n";
    }
    if (!stream.good())
    {
        std::cout << "and stream is not good\n";
    }
}
 
 
修改状态标志
std::basic_ios<CharT,Traits>::clear 
|   void clear( std::ios_base::iostate state = std::ios_base::goodbit );  | 
通过以 state 的值赋值,设置流错误状态标志。默认赋值 std::ios_base::goodbit ,它拥有的效果为清除所有错误状态标志。
若 rdbuf() 为空指针(即无关联的流缓冲),则赋值 state | badbit 。可能抛出异常。
参数
| state | - | 新的错误状态标志设置。它能为下列常量的组合: 
    
  | 
返回值
(无)
调用示例
#include <iostream>
#include <string>
int main()
{
    double n;
    while (std::cout << "Please, enter a number\n"
            && !(std::cin >> n))
    {
        std::cin.clear();
        std::string line;
        std::getline(std::cin, line);
        std::cout << "I am sorry, but '" << line << "' is not a number\n";
    }
    std::cout << "Thank you for entering the number " << n << '\n';
} 
                









![[易语言][原创]使用易语言部署yolov8的onnx模型](https://i0.hdslb.com/bfs/archive/041f60a2d143903dc2e990fb3848f31ba598b5a3.jpg@100w_100h_1c.png@57w_57h_1c.png)


![[元带你学: eMMC协议详解 16] eMMC 安全方案 之 设备锁定(Lock) / 解锁(Unlock) 详解](https://img-blog.csdnimg.cn/img_convert/262abfa94e2b5642120b21810384ce4b.png)





