簡體   English   中英

當使用 output 文件 stream 指定 ios::in 模式時會發生什么?

[英]What happens when ios::in mode is specified with an output file stream?

在 c++ 中創建文件流時, ios::inios::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” outout|trunc 銷毀內容 創建新的
“一種” appout|app Append 歸檔 創建新的
“r+” out|in 從頭開始閱讀 錯誤
“w+” out|in|trunc 銷毀內容 創建新的
“一個+” out|in|appin|app 寫到最后 創建新的
“rb” binary|in 從頭開始閱讀 打不開
“wb” binary|outbinary|out|trunc 銷毀內容 創建新的
“ab” binary|appbinary|out|app 寫到最后 創建新的
“r+b” binary|out|in 從頭開始閱讀 錯誤
“w+b” binary|out|in|trunc 銷毀內容 創建新的
“a+b” binary|out|in|appbinary|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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM