電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>C語言|源代碼>c語言文件下載ppt

c語言文件下載ppt

2008-09-03 | rar | 5544 | 次下載 | 5積分

資料介紹

此PPT主要內(nèi)容有介紹文件概述,文件類型指針,文件操作的相關(guān)函數(shù),應用舉例,C文件的概念
所謂的“文件”(file)一般指:存儲在外部介質(zhì)上的相關(guān)數(shù)據(jù)的集合。存放
文件的外部介質(zhì)有磁帶、磁盤、光盤等外部存儲器。數(shù)據(jù)包括:數(shù)字、文字、
圖形、圖象、聲音、視頻等。在本章所講的文件是由數(shù)字和文字組成的數(shù)據(jù)文
件。
?? 以前各章中所用到的輸入輸出,都是以屏幕等(標準輸出文件指針:stdout)
為輸出設備,以鍵盤(標準輸入文件指針:stdin)為輸入設備。而程序運行有時
需要把數(shù)據(jù)存放到磁盤中,這就要用到磁盤文件。
?? C語言把文件看作是一個字符(字節(jié))的序列,即由一個一個的字符或字節(jié)的
數(shù)據(jù)順序組成。換句話說,C語言是把每一個文件都看作是一個有序的字節(jié)流。
流是文件和程序之間的通道。一個C程序可以創(chuàng)建文件和對文件內(nèi)容進行更
新、修改,在程序中所需的數(shù)據(jù)也可以從另一個文件中獲得。
????? 對文件的操作一般通過三個步驟完成:打開文件、讀或?qū)懳募?、關(guān)閉文件。
文件系統(tǒng)
在C語言中,根據(jù)操作系統(tǒng)對文件的處理方式的不同,把文件系統(tǒng)分為緩沖
文件系統(tǒng)和非緩沖文件系統(tǒng)。ANSI C標準采用緩沖文件系統(tǒng)。
?? 緩沖文件系統(tǒng)(又稱標準I/O)是指操作系統(tǒng)在內(nèi)存中為每一個正在使用的文
件開辟一個讀寫緩沖區(qū)。從內(nèi)存向磁盤輸出數(shù)據(jù)時,必須先送到內(nèi)存緩沖區(qū),
裝滿緩沖區(qū)后才一起送到磁盤去。如果從向內(nèi)存讀入數(shù)據(jù),則一次從磁盤文件
將一批數(shù)據(jù)輸入到內(nèi)存緩沖區(qū),然后再從內(nèi)存緩沖區(qū)逐個地將數(shù)據(jù)送到程序數(shù)
據(jù)區(qū)(變量)。緩沖文件系統(tǒng)解決了高速CPU與低速外存之間的矛盾,使用它延長了外存的
使用壽命,也提高了系統(tǒng)的整體效率。
?? 非緩沖文件系統(tǒng)(又稱系統(tǒng)I/O)是指系統(tǒng)不自動開辟確定大小的內(nèi)存緩沖區(qū),
而由程序自己為每個文件設定緩沖區(qū)。
?? 標準I/O與系統(tǒng)I/O分別采用不同的輸入輸出函數(shù)對文件進行操作。由于ANSI
C只采用緩沖文件系統(tǒng),因此本章所講的函數(shù)也只是處理標準I/O的函數(shù)。
文件分類
?? 1、從用戶角度分類
?? 從用戶的角度文件分為標準設備文件和普通磁盤文件。
?? ⑴標準設備文件:是指與主機相連的各種外部設備,如顯示器、打印機、鍵
盤等。在操作系統(tǒng)中,把外部設備也看作是一個文件來進行管理,把它們的輸
入、輸出等同于對磁盤文件的讀和寫。
?? 標準輸入文件指針:stdin。如果指定從stdin輸入數(shù)據(jù),就是鍵盤輸入。
?? 標準輸出文件指針:stdout。如果指定stdout輸出數(shù)據(jù),就是屏幕等輸出。
?? 標準錯誤輸出文件指針:stderr。標準錯誤輸出也是從屏幕終端輸出。
?? ⑵普通磁盤文件:本章所講的文件主要針對磁盤文件。
? 2、按文件的編碼方式分類
從文件的編碼方式看,C文件分為ASCII文件和二進制文件。
?? ⑴ASCII文件(也稱文本文件):ASCII文件在磁盤中存放時,每個字符對應一
個字節(jié),用于存放對應的ASCII碼。如:整型十進制數(shù)12345,按ASCII文件存放
則需要占用5個字節(jié)。可在屏幕上顯示,但占用空間較大,讀寫操作要轉(zhuǎn)換。
?? ⑵二進制文件:是對不同的數(shù)據(jù)類型,按其實際占用內(nèi)存字節(jié)數(shù)存放。即內(nèi)
存的存儲形式,原樣輸出到磁盤上存放。如:整型十進制數(shù)12345,按二進制文
件存放只需要2個字節(jié)。屏幕顯示為亂碼,但占用空間小,讀寫操作效率高。
一、文件指針
要調(diào)用磁盤上的一個文件時,必須知道與該文件有關(guān)的信息。比如文件名、
文件的當前讀寫位置、文件緩沖區(qū)大小與位置、文件的操作方式等。這些信息
被C語言系統(tǒng)保存在一個稱作FILE的結(jié)構(gòu)體中,它在stdio.h頭文件中定義內(nèi)。
FILE結(jié)構(gòu)體的內(nèi)容為(在使用文件操作時,一般不用關(guān)心FILE內(nèi)部成員信息):
typedef?? struct
{? int level;??????????????? /*緩沖區(qū)“滿”或“空”的程度*/
?? unsigned flags;?????????? /*文件狀態(tài)標志*/
?? char? fd;???????????????? /*文件描述符*/
?? unsigned char hold;?????? /*如無緩沖區(qū)不讀取字符*/
?? int? bsize;?????????????? /*緩沖區(qū)大小*/
?? unsigned char *buffer;??? /*數(shù)據(jù)緩沖區(qū)位置*/
?? unsigned char *curp;????? /*文件定位指針*/
?? unsigned istemp;????????? /*臨時文件指示器*/
?? short token;????????????? /*用于有效性檢查*/
}FILE;
文件指針(續(xù)):
有了結(jié)構(gòu)體FILE類型后,可以用它來定義若干個FILE類型的變量,以便存放
若干個文件的信息。如:FILE? f[5];? 定義了一個結(jié)構(gòu)體數(shù)組f,它有5個元素
可以用來存放5個文件的信息。
?? 對于每一個要操作的文件,都必須定義一個指針變量,并使它指向該文件結(jié)
構(gòu)體變量,這個指針稱為文件指針。通過文件指針找到被操作文件的描述信息,
就可對它所指的文件進行各種操作。定義文件指針的一般形式為:
?????? FILE? * 指針變量標識符;
如:FILE? *fp;? 表示fp是一個指向FILE類型結(jié)構(gòu)體的指針變量??梢允筬p指
向某一個文件的結(jié)構(gòu)體變量,從而通過該結(jié)構(gòu)體變量中的文件信息能夠訪問該
文件。
?? 如果有n個文件,一般應定義n個FILE類型的指針變量,使它們分別指向n個
文件所對應的結(jié)構(gòu)體變量。
如:FILE? *fp1 , *fp2 , *fp2 , *fp4; 可以處理4個文件。
??? 注意:FILE是用typedef聲明的文件信息結(jié)構(gòu)體的別名,由C系統(tǒng)定義,用
戶只能使用,不能修改,并且FILE必須大寫。
對文件的操作一般步驟包括:打開文件、讀或?qū)懳募?、關(guān)閉文件。在C語言
中,文件操作都是由庫函數(shù)來完成的。這些庫函數(shù)包含在stdio.h頭文件中。
一、文件的打開與關(guān)閉
所謂打開文件,實際上是建立文件的各種有關(guān)信息,并使文件指針指向該文
件,以便進行其它各種操作。關(guān)閉文件則是斷開指針與文件之間的聯(lián)系,也就
禁止再對該文件進行操作。
?? 1、文件的打開(fopen函數(shù))
?? ANSIC規(guī)定了標準輸入輸出函數(shù)庫,用fopen()函數(shù)來實現(xiàn)打開文件。fopen
函數(shù)的原型為:? FILE *fopen(char *filename,char *mode)
其中參數(shù)filename表示一個文件名,是用雙引號括起來的字符串,這個字符串
可以是一個合法的帶有路徑的文件名。參數(shù)mode表示對文件的操作模式,mode
的值仍需要用雙引號括起來,mode的取值及其含義詳見教材P×××的表6.1。
?? 如:FIEL *fp1; fp1=fopen(“test.c”,”r”); 表示是在當前目錄下打開文件
test.c,只允許進行“讀”操作,并使fp指向該文件。
?? 再如:FIEL *fp2; fp2=fopen(“c:\\tt\\test.exe”,”rb”); 表示打開C盤下
tt目錄中的test.exe文件,是二進制文件,只允許按二進制方式進行讀操作。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1490次下載  |  免費
  3. 2單片機典型實例介紹
  4. 18.19 MB  |  92次下載  |  1 積分
  5. 3S7-200PLC編程實例詳細資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費
  11. 6基于AT89C2051/4051單片機編程器的實驗
  12. 0.11 MB  |  4次下載  |  免費
  13. 7藍牙設備在嵌入式領域的廣泛應用
  14. 0.63 MB  |  3次下載  |  免費
  15. 89天練會電子電路識圖
  16. 5.91 MB  |  3次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關(guān)電源設計實例指南
  16. 未知  |  21539次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費