C++ 参考手册

位置:首页 > C++ 参考手册 >C++ 标准库头文件 > 标准库头文件 <ios>

此头文件是输入/输出库的一部分。

包含

<iosfwd>

管理格式化标志和输入/输出异常
(类)
管理任意流缓冲
(类模板)
表示流或文件中的绝对位置
(类模板)
(C++11)
IO 流的错误码
(枚举)
扩充类型特征 std::is_error_code_enum 以鉴别 iostream 错误码
(类模板)

typedef

表示相对的文件/流位置(距 fpos 的偏移),足以表示任何文件大小
(typedef)
表示一次 I/O 操作中转移的字符数或 I/O 缓冲区的大小
(typedef)

函数

鉴别 iostream 错误类别
(函数)
构造一个 iostream 错误码
(函数)
构造一个 iostream error_condition
(函数)
在布尔值的文本和数值表示间切换
(函数)
控制是否使用前缀指示数值基数
(函数)
控制浮点表示是否始终包含小数点
(函数)
控制是否将 + 号与非负数一同使用
(函数)
控制是否跳过输入上的前导空白符
(函数)
控制一些输出操作是否使用大写字母
(函数)
控制是否每次操作后冲洗输出
(函数)
设置填充字符的布置
(函数)
更改用于整数 I/O 的基数
(函数)
更改用于浮点 I/O 的格式化
(函数)

概要

#include <iosfwd>
namespace std {
 
    typedef /*implementation-defined*/ streamoff;
    typedef /*implementation-defined*/ streamsize;
 
    template <class stateT> class fpos;
 
    class ios_base;
 
    template <class charT, class traits = char_traits<charT> >
        class basic_ios;
 
    // 操纵符:
    ios_base& boolalpha (ios_base& str);
    ios_base& noboolalpha(ios_base& str);
    ios_base& showbase (ios_base& str);
    ios_base& noshowbase (ios_base& str);
    ios_base& showpoint (ios_base& str);
    ios_base& noshowpoint(ios_base& str);
    ios_base& showpos (ios_base& str);
    ios_base& noshowpos (ios_base& str);
    ios_base& skipws (ios_base& str);
    ios_base& noskipws (ios_base& str);
    ios_base& uppercase (ios_base& str);
    ios_base& nouppercase(ios_base& str);
    ios_base& unitbuf (ios_base& str);
    ios_base& nounitbuf (ios_base& str);
    ios_base& internal (ios_base& str);
    ios_base& left (ios_base& str);
    ios_base& right (ios_base& str);
    ios_base& dec (ios_base& str);
    ios_base& hex (ios_base& str);
    ios_base& oct (ios_base& str);
    ios_base& fixed (ios_base& str);
    ios_base& scientific (ios_base& str);
    ios_base& hexfloat (ios_base& str);
    ios_base& defaultfloat(ios_base& str);
 
    enum class io_errc {
        stream = 1
    };
 
    template <>
    struct is_error_code_enum<io_errc> : public true_type { };
 
    error_code make_error_code(io_errc e);
    error_condition make_error_condition(io_errc e);
    const error_category& iostream_category();
}

std::ios_base

class ios_base {
 public:
    class failure;
 
    // fmtflags
    typedef /*bitmask-type-1*/ fmtflags;
    static constexpr fmtflags boolalpha = /*unspecified*/;
    static constexpr fmtflags dec = /*unspecified*/;
    static constexpr fmtflags fixed = /*unspecified*/;
    static constexpr fmtflags hex = /*unspecified*/;
    static constexpr fmtflags internal = /*unspecified*/;
    static constexpr fmtflags left = /*unspecified*/;
    static constexpr fmtflags oct = /*unspecified*/;
    static constexpr fmtflags right = /*unspecified*/;
    static constexpr fmtflags scientific = /*unspecified*/;
    static constexpr fmtflags showbase = /*unspecified*/;
    static constexpr fmtflags showpoint = /*unspecified*/;
    static constexpr fmtflags showpos = /*unspecified*/;
    static constexpr fmtflags skipws = /*unspecified*/;
    static constexpr fmtflags unitbuf = /*unspecified*/;
    static constexpr fmtflags uppercase = /*unspecified*/;
    static constexpr fmtflags adjustfield = /*left|right|internal*/ ;
    static constexpr fmtflags basefield = /*dec|oct|hex*/ ;
    static constexpr fmtflags floatfield = /*scientific|fixed*/ ;
 
    // iostate
    typedef /*bitmask-type-2*/ iostate;
    static constexpr iostate badbit = /*unspecified*/;
    static constexpr iostate eofbit = /*unspecified*/;
    static constexpr iostate failbit = /*unspecified*/;
    static constexpr iostate goodbit = /*0*/ ;
 
    // openmode
    typedef /*bitmask-type-3*/ openmode;
    static constexpr openmode app = /*unspecified*/;
    static constexpr openmode ate = /*unspecified*/;
    static constexpr openmode binary = /*unspecified*/;
    static constexpr openmode in = /*unspecified*/;
    static constexpr openmode out = /*unspecified*/;
    static constexpr openmode trunc = /*unspecified*/;
 
    // seekdir
    typedef /*bitmask-type-4*/ seekdir;
    static constexpr seekdir beg = /*unspecified*/;
    static constexpr seekdir cur = /*unspecified*/;
    static constexpr seekdir end = /*unspecified*/;
 
    class Init;
 
    // fmtflags 状态:
    fmtflags flags() const;
    fmtflags flags(fmtflags fmtfl);
    fmtflags setf(fmtflags fmtfl);
    fmtflags setf(fmtflags fmtfl, fmtflags mask);
    void unsetf(fmtflags mask);
    streamsize precision() const;
    streamsize precision(streamsize prec);
    streamsize width() const;
    streamsize width(streamsize wide);
 
    // locale :
    locale imbue(const locale& loc);
    locale getloc() const;
 
    // 存储:
    static int xalloc();
    long& iword(int index);
    void*& pword(int index);
 
    // 析构函数
    virtual ~ios_base();
 
    // 回调;
    enum event {
        erase_event,
        imbue_event,
        copyfmt_event
    };
    typedef void (*event_callback)(event, ios_base&, int index);
    void register_callback(event_callback fn, int index);
 
    ios_base(const ios_base&) = delete;
    ios_base& operator=(const ios_base&) = delete;
    static bool sync_with_stdio(bool sync = true);
 
 protected:
    ios_base();
 
 private:
    static int index; // 仅为说明
    long* iarray; // 仅为说明
    void** parray; // 仅为说明
};

std::ios_base::failure

class ios_base::failure : public system_error {
 public:
    explicit failure(const string& msg, const error_code& ec = io_errc::stream);
    explicit failure(const char* msg, const error_code& ec = io_errc::stream);
};

std::ios_base::Init

class ios_base::Init {
 public:
    Init();
    ~Init();
 private:
    static int init_cnt; // 仅为说明
};

std::fpos

template <class stateT> class fpos {
 public:
    stateT state() const;
    void state(stateT);
 private;
    stateT st; // 仅为说明
};

std::basic_ios

template <class charT, class traits = char_traits<charT> >
class basic_ios : public ios_base {
 public:
    // 类型:
    typedef charT char_type;
    typedef typename traits::int_type int_type;
    typedef typename traits::pos_type pos_type;
    typedef typename traits::off_type off_type;
    typedef traits traits_type;
 
    explicit operator bool() const;
    bool operator!() const;
    iostate rdstate() const;
    void clear(iostate state = goodbit);
    void setstate(iostate state);
    bool good() const;
    bool eof() const;
    bool fail() const;
    bool bad() const;
 
    iostate exceptions() const;
    void exceptions(iostate except);
 
    // 构造函数/析构函数
    explicit basic_ios(basic_streambuf<charT,traits>* sb);
    virtual ~basic_ios();
 
    // 成员:
    basic_ostream<charT,traits>* tie() const;
    basic_ostream<charT,traits>* tie(basic_ostream<charT,traits>* tiestr);
    basic_streambuf<charT,traits>* rdbuf() const;
    basic_streambuf<charT,traits>* rdbuf(basic_streambuf<charT,traits>* sb);
    basic_ios& copyfmt(const basic_ios& rhs);
    char_type fill() const;
    char_type fill(char_type ch);
    locale imbue(const locale& loc);
    char narrow(char_type c, char dfault) const;
    char_type widen(char c) const;
    basic_ios(const basic_ios& ) = delete;
    basic_ios& operator=(const basic_ios&) = delete;
 
 protected:
    basic_ios();
    void init(basic_streambuf<charT,traits>* sb);
    void move(basic_ios& rhs);
    void move(basic_ios&& rhs);
    void swap(basic_ios& rhs) noexcept;
    void set_rdbuf(basic_streambuf<charT, traits>* sb);
};