- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结构(structure)联集(union)
第十一章檔案(File) 11-1 檔案的基本運作- fopen(),fclose(),getc(),putc() 11-2 標準輸出/入檔案- stdin,stdout,stderr 11-3 區段 I/O 與字串 I/O- fread(),fwrite(),fgets(),fputs()? 11-4 隨機存取函數-fseek(),ftell() 11-5 其他的檔案控制 11-6 低階檔案的運作 11-7 程式觀摩 C語言中對於檔案操作的方式,分成兩種。 一種是把檔案看成是由一個個字元串起來的資料集合,稱為資料流 (data stream) 的觀點,在程式內以檔案指標 (FILE *) 的資料型態來代表所欲操作的檔案,一般稱為高階的檔案操作。 另一種是由 UNIX 作業系統對檔案的控制方式而來,在程式內以檔案描述值 (file descriptor) 來代表,對 MSDOS 而言,就是用檔案代號 (file handle) 來指定,這種系統層次的檔案控制,一般稱為低階的檔案操作。 對初學者來說,高階的檔案操作較為重要,而且是最常見的檔案使用方式,本章主要討論高階檔案的各種運作方式及相關的函數。 11-1 檔案的基本運作-fopen(),fclose(),getc(),putc() 對C語言的程式來說,檔案是由一個個字元所串起來的資料集合,這些字元可能是代表文字或數字,也可能是機器碼或是代表一個圖形的幾個點。不管是原始程式檔、資料檔,或是可執行檔、影像圖形檔,對 C語言而言,都是相同的檔案概念。唯一不同的,是這些檔案的使用方式。 ? 以程式的觀點來看,這個檔案是輸入資料用的(可讀)、或是輸出資料用的(可寫),甚或是既當輸入又當輸出(可讀可寫)。另一個重要的區別是,這個檔案是本文檔 (Text file) 或是二進位檔 (Binary file)。 本文檔是指檔案內容是由一些文字符號或數字所構成,這些文數字都是ASCII 代碼來表示,所以又稱為 ASCII 檔,例如書信、C 原始程式本身(xxx.c)、批次檔 (xxx.bat) 等,所有能用 MSDOS 的 type命令顯示出來的檔案,都是 ASCII檔。 二進位檔則是指檔案內容是一個個的二進位數字,例如以一個位元組的八個位元來代表八個黑白點(1是黑,0是白),這就是影像或圖形檔。數字如果直接以二進位格式存入檔案,會比用文數字來代表,節省一些空間(整數佔兩個位元組、浮點數佔四個位元組),這也是二進位檔。其他如 .COM 檔與 .EXE 檔案,都是二進位檔。 ┌───┬─────────┬───────┐ │ │ Text File │ Binary File │ │ │ 本 文 檔 │ 二 進 位 檔 │ ├───┼─────────┼───────┤ │內 容│可印出的 ASCII 碼 │任何二進位資料│ ├───┼─────────┼───────┤ │換 行│ CR 與 LF │ 只有 CR │ │ \n │ (OxOD 與 OxOA) │ │ ├───┼─────────┼───────┤ │檔 案│ Ctrl-Z │ 只能根據 │ │結 束│ (即 Ox1A) │ 檔案長度 │ └───┴─────────┴───────┘ 圖 11-1-1 本文檔與二進位檔 開檔-fopen() ┌─────────────────┐ │ #include stdio.h │ │ FILE *fopen (檔案名稱,模式) │ └─────────────────┘ 其中檔案名稱是一個字串,就是 MSDOS 的檔案名稱例如 “autoexec.bat”,甚至可包括磁碟及路徑名稱,但是要注意斜線\需用脫序字元來表示,例如 “C:\\autoexec.bat”。模式是一個字串,指定這個檔案的使用模式。 常用的模式如下: r 開啟後,只可讀取資料 (read) w 開啟後,可寫入資料 (write) a 添加資料 (append) 如果要指定用二進位模式 (binary) 開檔,要附加一個 b,使用“rb”,“wb” 及 “ab” 模式來開檔。 欲指定用本文模式 (text) 開檔,則附加一個 t,使用 rt,wt,at。除了特殊的控制之外,不附加 t 或 b,會視為本文模
文档评论(0)