[英]What happens when ios::in mode is specified with an output file stream?
在 c++ 中创建文件流时, ios::in
和ios::out
模式的目的是什么? 我创建了一个 output 文件 stream 作为ofstream myout("file.txt",ios::in);
这是一个 output 文件 stream 但指定ios::in
模式。 ios::in
模式在 output stream 和类似ios::out
模式在输入文件 stream 中的作用是什么?
我看过here ,但无法理解。
根据std::basic_filebuf<CharT,Traits>::open()
,它更好地解释了各种标志组合的实际作用:
文件的打开方式如同调用
std::fopen
,第二个参数(模式)确定如下:
模式 打开模式 & ~ate 文件已存在时的操作 文件不存在时的操作 “r” in
从头开始阅读 打不开 “w” out
,out|trunc
销毁内容 创建新的 “一种” app
,out|app
Append 归档 创建新的 “r+” out|in
从头开始阅读 错误 “w+” out|in|trunc
销毁内容 创建新的 “一个+” out|in|app
,in|app
写到最后 创建新的 “rb” binary|in
从头开始阅读 打不开 “wb” binary|out
,binary|out|trunc
销毁内容 创建新的 “ab” binary|app
,binary|out|app
写到最后 创建新的 “r+b” binary|out|in
从头开始阅读 错误 “w+b” binary|out|in|trunc
销毁内容 创建新的 “a+b” binary|out|in|app
,binary|in|app
写到最后 创建新的 如果
openmode
不是列出的模式之一,则open()
失败。如果打开操作成功并且
openmode & std::ios_base::ate != 0
(设置了 ate 位),则将文件 position 重新定位到文件末尾,如同通过调用std::fseek(file, 0, SEEK_END)
,其中file
是通过调用fopen
返回的指针。 如果重新定位失败,则调用close()
并返回一个 null 指针以指示失败。如果关联文件已经打开,则立即返回 null 指针。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.