作者LPH66 ((short)(-15074))
看板C_and_CPP
標題Re: [問題] 關於讀檔和寫檔
時間Sat Dec 19 00:38:53 2009
順便藉這個機會寫一下簡易版 fopen mode string 的分別法:
"r" 從頭開始讀、不洗掉內容
"w" 從頭開始寫入、洗掉內容
"a" 從尾巴開始寫入、不洗掉內容
附上一個 "+" 就是都改成讀寫
不過一般如果真要用同時讀寫來 update 的話 通常是開成 "r+"
因為 "a+" 在檔案的內部指標不在最後面時寫入似乎會發生奇怪的現象
然後是
"t" 開成文字模式
"b" 開成二進位模式
在 Windows 下這個選項影響換行字元的讀寫及檔案結束的判定
沒寫的話是 "t" 除非你設定 _fmode = _O_BINARY;
開成 "t" 時 \n 寫進檔案會變成 \r \n 兩個 byte
讀進來碰到連續的 \r \n 會當成只有一個 \n
當讀到 \x1a (\032, ASCII 26) 時會當做檔案結束
開成 "b" 時就是直接照搬
在 Unix/Linux 下面 (正確的說是 POSIX 相容平台) 則沒有這個選項
一切都是直接照搬
雖然為了符合 C90 的標準可以放個 b 進去 不過會忽略掉它
(但是不能放 t 那是 Windows (或說 MSVCRT) 專有的選項)
--
有人喜歡邊
玩遊戲邊
上逼;
也有人喜歡邊
聽歌邊
打字。
但是,我有個請求,
選字的時候請
專心好嗎?
-- 改編自「古 火田 任三郎」之開場白
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.92
推 VictorTom:L大文章都回成這樣了, 啊小弟我除了推還能幹麻....XD 12/19 00:44
推 elfkiller:喔喔 實用推 12/19 00:58
推 hilorrk:great 12/19 03:06
推 BlazarArc:實用推 12/19 08:36
推 Aidol:棒 很實用 12/19 13:27
推 softwind:Read/Write/Append, Text/Binary 12/19 22:15
推 siriusu:借轉個版唷 :) 12/22 01:26