在 C++ 中,ios::openmode
是一个位掩码类型,用于指定文件打开模式。以下是可用的 ios::openmode
标志:
-
ios::app
: 在每次写入之前定位到流的末尾。【无文件创建 有文件末尾追加】 -
ios::ate
: 打开文件后立即定位到文件末尾。【无文件创建 有文件全部擦除重写】 -
ios::binary
: 以二进制模式打开文件。 -
ios::in
: 打开文件以读取。 -
ios::out
: 打开文件以写入。 -
ios::trunc
: 如果文件已存在,则在打开时将其长度截断为0。
这些标志可以单独使用,也可以组合使用,例如 ios::in | ios::out
表示以读写模式打开文件。
注意
在C++中,std::ios::binary
是一个用于文件I/O的标志,它指定了文件应该以二进制模式打开。这意味着文件会被按字节读写,而不会对换行符进行特殊处理。在文本模式下,换行符可能会根据操作系统而被转换(例如,在Windows中,\n
可能会被转换为 \r\n
)。使用 std::ios::binary
可以避免这种转换,确保数据的原样读写。
要原汁原味发送文件,务必使用二进制模式打开