std::ios_base::openmode

来自cppreference.com
< cpp‎ | io‎ | ios base
 
 
 
 
typedef /* 由实现定义 */ openmode;
static constexpr openmode app =       /* 由实现定义 */;

static constexpr openmode binary =    /* 由实现定义 */;
static constexpr openmode in =        /* 由实现定义 */;
static constexpr openmode out =       /* 由实现定义 */;
static constexpr openmode trunc =     /* 由实现定义 */;

static constexpr openmode ate =       /* 由实现定义 */;
static constexpr openmode noreplace = /* 由实现定义 */;
(C++23 起)

指定可用的文件打开标志。它是位掩码类型 (BitmaskType) ,下列常量得到定义:

常量 解释
app 每次写入前寻位到流结尾
binary 二进制模式打开
in 为读打开
out 为写打开
trunc 在打开时舍弃流的内容
ate 打开后立即寻位到流结尾
noreplace (C++23) 以独占模式打开

示例

#include <fstream>
#include <iostream>
#include <string>
 
int main()
{
    const char* fname = "unique_name.txt";
 
    // 写入临时流对象
    std::fstream(fname, std::ios::out | std::ios::trunc) << "Hi";
 
    std::string s;
    std::fstream(fname, std::ios::in) >> s;
    std::cout << s << '\n';
}

输出:

Hi

参阅

打开文件并配置它为关联字符序列
(std::basic_filebuf<CharT,Traits> 的公开成员函数)
构造一个 basic_stringbuf 对象
(std::basic_stringbuf<CharT,Traits,Allocator> 的公开成员函数)