1樓:Diao Diao
如果樓主是要問為什麼C++要這麼做: 因為C++的fstream是繼承於C++標準的iostream,是對C++標準庫順理成章的"延續", 有利於標準化。
如果樓主是要問為什麼要抽想成乙個stream:我覺得一方面是習慣,另一方面stream的介面滿足絕大多數檔案操作需求。
如果樓主是要問為什麼要用fstream這個名字: 是個比喻吧, 像水流 ~~~ :)
2樓:
Linux 裝置分為字元(c)和塊(b)裝置兩種。tty 是 c 裝置,不能 seek,「流」是正確的抽象;C 的 stdin / stdout 操作介面大致就是喂這種用例設計的,C++ 順著一路抄下來了而已。
不使用 seek 基本上做不了多少有用的事情;seek 本身又不是乙個可以對映到「流」上去的操作。
所以……
When should I use mmap for file access?
對於嚴肅的檔案操作的場合,mmap 才是王道。fstream 什麼的……呵呵。
3樓:myd7349
引用《物件導向程式設計——C++語言描述》上的一段話:
「在C++中,程式的輸入被看作從鍵盤、磁碟檔案或其他輸入源輸入的一串連續的位元組流;程式的輸出被看作是輸出到顯示器、磁碟檔案或其他目標的一串連續的位元組流。因此C++輸入/輸出也被稱作輸入/輸出流。」
感覺本回答純屬文字遊戲。嗯。我純粹是打醬油的。
實不相瞞,年輕人,你這個問題提到的「流」讓我陷入了對時間、空間的深深思索中……
4樓:
檔案本身就是個抽象的概念.
既包括可隨機訪問的普通檔案,也包括串列埠這樣的順序訪問的檔案.
別的方式最典型的就是記憶體影射 mmap
5樓:邱昊宇
想想這兩種情況即可:
有些檔案在空間上太龐大,無法一次性全部載入進記憶體(如:無窮大的檔案)有些檔案在時間上不連續,無法一次性全部載入進記憶體(如:標準輸入、Socket)
p.s. 「時間上不連續」有點文不達意,可以理解為只有在未來才能得到完整的資料……
為什麼c 要「在標頭檔案中宣告,在原始檔中定義」?
Coder 為什麼不推薦在標頭檔案中定義函式或者變數呢,只建議在標頭檔案中宣告變數和函式.要記住,每當你用乙個 include的時候,你就是把那個標頭檔案的內容搬到 include的位置 pragma once的作用是 在同乙個檔案中多次include同乙個標頭檔案的時候,保證該標頭檔案內容只被替換...
C語言,嘗試fopen 讀寫檔案為什麼會引發下面的「應用程式錯誤」?
Hippop 給樓主推薦乙個好玩的,FILE f fopen C ab fseek f,0,0 手動打碼 w h i l e 1 f w r i t e x00 x00 x00 x00 1,4,f 分割線 阿秋 你試試這個 include int main FILE fp char c fp fop...
為什麼很多人會把boss誤寫為boos?
滌塵 不知道題主是不是全是在遊戲圈裡看到boos這個詞。其實,最早的時候玩家間規定遊戲裡的大怪叫boos,為了和現實中的boss區分開,就和陝西的英文名是shaanxi和山西shanxi區分開差不多道理。不過畢竟boos是個錯誤的單詞,所以知道的人越來越少了。 紅燒橘子皮 就和漢字裡的形近字容易寫成...