簡體   English   中英

為什么std :: fstream返回void而不是bool

[英]Why std::fstream returns void instead of bool

為什么C ++標准庫中std :: fstream類的成員函數open返回void而不是bool以便立即檢查是否成功打開?

因為如果設置了異常,則在open調用失敗時會引發異常,否則它們將使用failbit指示發生了錯誤。 從文檔中:

失敗時,將設置failbit標志(可以通過成員fail進行檢查),並且根據設置的異常值,可能會引發異常。

我的理解是,當fstream允許您嘗試讀取(或我也想寫)任何類型的文件時,fstream可能有很多失敗的方式。 同樣,“失敗”也可能是模棱兩可的,具體取決於情況和程序員。 鑒於此,我認為很難從布爾返回值中獲取有意義的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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