[英]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.