![C及C++程序設計 第十三章 磁盤文件操作IO系統(tǒng)_第1頁](http://file4.renrendoc.com/view/627163fcb02ed506cd0bdfef86aba7b7/627163fcb02ed506cd0bdfef86aba7b71.gif)
![C及C++程序設計 第十三章 磁盤文件操作IO系統(tǒng)_第2頁](http://file4.renrendoc.com/view/627163fcb02ed506cd0bdfef86aba7b7/627163fcb02ed506cd0bdfef86aba7b72.gif)
![C及C++程序設計 第十三章 磁盤文件操作IO系統(tǒng)_第3頁](http://file4.renrendoc.com/view/627163fcb02ed506cd0bdfef86aba7b7/627163fcb02ed506cd0bdfef86aba7b73.gif)
![C及C++程序設計 第十三章 磁盤文件操作IO系統(tǒng)_第4頁](http://file4.renrendoc.com/view/627163fcb02ed506cd0bdfef86aba7b7/627163fcb02ed506cd0bdfef86aba7b74.gif)
![C及C++程序設計 第十三章 磁盤文件操作IO系統(tǒng)_第5頁](http://file4.renrendoc.com/view/627163fcb02ed506cd0bdfef86aba7b7/627163fcb02ed506cd0bdfef86aba7b75.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第十三章磁盤文獻操作(I/O系統(tǒng))第1頁13.1文獻概述13.2控制臺I/O13.3ANSI文獻I/O系統(tǒng)第2頁13.1.1C文獻概念文獻(file)是計算機技術中一種主要概念。文獻一詞我們數(shù)次使用。從操作系統(tǒng)角度,與主機相連輸入輸出設備,也看做是文獻。
13.1文獻概述第3頁13.1.2流概念ANSIC文獻系統(tǒng)適用于多種設備,如終端、磁盤和磁帶等設備。根據(jù)文獻存放形式不一樣,有兩種類型流:文本流和二進制流。1.文本流文本流是一種ASCII碼字符序列。根據(jù)詳細環(huán)境需要,也許會有一定字符要進行轉換。2.二進制流二進制流是一組字節(jié)序列。它與設備之間傳遞數(shù)據(jù)存在一一對應關系,即沒有任何字符轉換。
第4頁13.1.3緩沖文獻系統(tǒng)和非緩沖文獻系統(tǒng)C語言支持兩種文獻系統(tǒng):緩沖文獻系統(tǒng)和非緩沖文獻系統(tǒng)。所謂緩沖文獻系統(tǒng)(bufferedfilesystem)是指在進行I/O操作時,系統(tǒng)自動為每個打開文獻開辟一種內(nèi)存緩沖區(qū)。
所謂非緩沖文獻系統(tǒng)(unbufferedfilesystem)是指系統(tǒng)不自動開辟內(nèi)存緩沖區(qū),而是由程序自己為每個文獻設定緩沖區(qū)。第5頁13.2控制臺I/O13.2.1簡單控制臺I/O函數(shù)1.讀寫字符表中讀寫字符四個函數(shù)原型如下:intgetche(void);intputhar(int);intgetchar(void);intgetch(void);函數(shù)getchar()是函數(shù)getche()一種變體。由于它要求輸入回車,就有也許在函數(shù)返回之后留下字符在輸入流中。
第6頁2.讀寫字符串用于控制臺讀寫字符串函數(shù)為gets()和puts()。它們原型如下:char*gets(char*);intputs(char*);并且都在頭文獻stdio.h中說明。gets()函數(shù)從鍵盤讀入一種字符串,放到指針參數(shù)指定地址中。
puts()函數(shù)功能是在屏幕上顯示一字符串,后跟一種新行符。第7頁13.2.2格式化控制臺I/O除了前面所介紹簡單控制臺I/O函數(shù)以外,C標準函數(shù)庫中尚有兩個格式化輸入輸出函數(shù):printf()和scanf()。
第8頁13.2.3標準設備文獻及I/O改向當進行輸入輸出操作時,一般輸入設備為鍵盤,輸出設備為顯示屏。這是系統(tǒng)要求,稱這些設備為標準設備。
標準設備文獻改向操作,是在執(zhí)行顧客程序文獻時,用改向操作符實現(xiàn)。有兩個改向操作符,它們是:<標準輸入文獻改向;>標準輸出文獻改向。第9頁13.3ANSI文獻I/O系統(tǒng)ANSI文獻I/O系統(tǒng),也稱為緩沖文獻輸入輸出系統(tǒng)。它由某些互相關聯(lián)函數(shù)組成。
第10頁13.3.1文獻構造類型和文獻指針首先引入一種新數(shù)據(jù)類型,即文獻構造類型。在ANSI文獻I/O系統(tǒng)中,每個被使用文獻,都在內(nèi)存開辟一種區(qū),用于寄存文獻有關信息,如文獻名、文獻狀態(tài)、文獻緩沖區(qū)位置以及目前讀寫位置等。
指向FILE構造指針稱為文獻指針。文獻指針變量定義一般形式為:FILE*文獻指針名;第11頁13.3.2打開文獻和關閉文獻文獻操作總流程是:打開文獻→操作文獻→關閉文獻。所謂打開文獻,就是把一種流同一種文獻聯(lián)系起來,使得能夠進行文獻輸入和輸出操作。
第12頁1.文獻打開函數(shù)fopen()打開文獻是通過函數(shù)fopen()實現(xiàn)。此函數(shù)要完成下列兩個功能:第一,打開一種流并把它同一種需要打開文獻聯(lián)系起來;第二,返回該文獻文獻指針。fopen()函數(shù)原型如下:FILE*fopen(char*filename,char*mode);
第13頁用“r”模式打開文獻,只能用于向計算機輸入數(shù)據(jù)(讀文獻),不能向該文獻輸出數(shù)據(jù)(寫文獻)。此模式要求所要打開文獻必須是已經(jīng)存在,不然在打開時犯錯。用“w”模式打開文獻只能用于向文獻寫數(shù)據(jù),不能用來向計算機輸入數(shù)據(jù)。
用“a”模式打開文獻,能夠向文獻末尾添加數(shù)據(jù)。
用“r+”、“w+”和“a+”打開文獻,既能夠用作寫也能夠用作讀。
第14頁2.文獻關閉函數(shù)fclose()函數(shù)fclose()用于關閉用fopen()打開文獻。函數(shù)fclose()原型為:intfclose(FILE*fp);這里fp是調(diào)用fopen()時,它返回文獻指針。
第15頁13.3.3文獻讀和寫1.函數(shù)fgetc()和fputc(函數(shù)getc()和putc())函數(shù)fgetc()此函數(shù)功能是,從指定文獻讀入一種字符。它原形為:intgetc(File*fp);fp為文獻指針。
第16頁函數(shù)fputc()此函數(shù)功能是,向指定文獻寫一種字符。它原型為:intputc(intch,FILE*fp);其中fp為文獻指針,ch為字符變量,其值即為所要寫進文獻字符。
第17頁2.函數(shù)feof()、ferror()和rewind()應用(1)函數(shù)feof()為了能同步適用于文本文獻和二進制文獻,可采取二進制模式打開文獻。
(2)函數(shù)ferror()ferror()函數(shù)可用來確定文獻操作是否出現(xiàn)了錯誤。
(3)函數(shù)rewind()rewind()函數(shù)用于將其參數(shù)所批示文獻指針,定位到文獻開頭。
第18頁3.函數(shù)getw()和putw()函數(shù)getw()和putw()分別用于讀和寫磁盤文獻中整數(shù)。
第19頁4.函數(shù)fgets()和fputs()函數(shù)fgets()和fputs()分別用于讀和寫磁盤文獻字符串,其原型如下:char*fputs(char*str,FILE*fp);char*fgets(char*str,intlength,FILE*fp);函數(shù)fgets()從指定流讀一種字符串,直到遇到新行符或讀夠了length-1個字符。
第20頁5.函數(shù)fread()和fwrite()函數(shù)fread()和函數(shù)fwrite()分別用于讀和寫數(shù)據(jù)塊(一組數(shù)據(jù))。它們原型如下:unsignedfread(void*buffer,intnum_bytes,intcount,FILE*fp);unsignedfwrite(void*buffer,intnum_bytes,intcount,FILE*fp);第21頁6.函數(shù)fprintf()和fscanf()對磁盤文獻格式化I/O操作是通過fprintf()和fscanf()兩個函數(shù)實現(xiàn)。它們同函數(shù)printf()和scanf()很相同,只是它們是對磁盤文獻操作而不是控制臺。函數(shù)fprintf()和fscanf()原型為:intfprintf(FILE*fp,char*control_string,...);intfscanf(FILE*fp,char*control_string,...);第22頁13.3.4文獻定位與文獻隨機存取1.函數(shù)rewind()函數(shù)原型如下:voidrewind(FILE*fp)2.函數(shù)fseek()函數(shù)原型如下:intfseek(FILE*fp,longnumber_bytes,intorigin);第23頁3.函數(shù)ftell()
在程序運行中,伴隨對文獻操作,文獻位置指針,是經(jīng)常變動。有時也許不清楚目前指針所指位置。函數(shù)ftell()作用是獲取文獻目前操作(讀或寫)位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度企業(yè)內(nèi)部審計與風險管理服務合同范本
- 2025年度智慧城市基礎設施劃撥土地開發(fā)合同
- 2025年度建筑沉降觀測與建筑壽命評估合同
- 2025年度酒吧設備采購與安裝服務合同
- 2025年度建筑工程衛(wèi)生清潔與施工現(xiàn)場噪音控制合同
- 2025年度磚廠節(jié)能減排技術承包合同
- 2025年度酒店紅酒行業(yè)數(shù)據(jù)分析與合作合同
- 2025年度酒水行業(yè)電商平臺運營與數(shù)據(jù)分析合同
- 2025年度新能源車充電樁建設借款合同借據(jù)
- 2025年合租房租賃合同(含社區(qū)服務與綜合管理)
- 山東省臨沂市蘭山區(qū)2024-2025學年七年級上學期期末考試生物試卷(含答案)
- 湖北省武漢市2024-2025學年度高三元月調(diào)考英語試題(含答案無聽力音頻有聽力原文)
- 一年級下冊勞動《變色魚》課件
- 商務星球版地理八年級下冊全冊教案
- 天津市河西區(qū)2024-2025學年四年級(上)期末語文試卷(含答案)
- 2025年空白離婚協(xié)議書
- 校長在行政會上總結講話結合新課標精神給學校管理提出3點建議
- T-CSUS 69-2024 智慧水務技術標準
- 2025年護理質(zhì)量與安全管理工作計劃
- 湖南大學 嵌入式開發(fā)與應用(張自紅)教案
- 地下商業(yè)街的規(guī)劃設計
評論
0/150
提交評論