freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[理學(xué)]模塊7_位運(yùn)算與文件-在線瀏覽

2024-12-03 21:16本頁面
  

【正文】 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0二 進(jìn) 制 文 件 存 儲 形 式 :0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 從圖中可以看出來, ASCII碼文件輸入與字符一一對應(yīng),便于對字符進(jìn)行逐個處理,也便于字符的輸出,但一般占存儲空間較多,而且花費(fèi)二進(jìn)制代碼和 ASCII代碼之間的轉(zhuǎn)換時間。 因此,文本文件特點(diǎn):存儲量大、速度慢、便于對字符操作;二進(jìn)制碼文件特點(diǎn):存儲量小、速度快、便于存放中間結(jié)果。輸入輸出數(shù)據(jù)流的開始和結(jié)束只由程序控制而不受物理符號(如回車換行符)的控制。 文件系統(tǒng)又分為 緩沖文件系統(tǒng) 和 非緩沖文件系統(tǒng) 。所謂非緩沖文件系統(tǒng)是低級文件系統(tǒng),指系統(tǒng)不自動開辟確定大小的緩沖區(qū),而由程序 為每個文件設(shè)定緩沖區(qū)。 圖 7 1 1 緩 沖 文 件 系 統(tǒng)內(nèi) 存 區(qū)程 序 數(shù) 據(jù) 區(qū)a輸 入 文 件 緩 沖 區(qū)輸 出 文 件 緩 沖 區(qū)磁 盤 文件內(nèi) 存 區(qū)程 序指 令 區(qū)用 戶 數(shù) 據(jù) 區(qū)緩 沖 區(qū)磁 盤 文件圖 7 1 2 非 緩 沖 文 件 系 統(tǒng) 標(biāo)準(zhǔn) C只采用緩沖文件系統(tǒng) ,也就是既用緩沖文件系統(tǒng)處理文本文件,也用它來處理二進(jìn)制文件。 ?4.緩沖文件系統(tǒng) ( 1) FILE類型和文件指針 在緩沖文件系統(tǒng)中,使用最多的概念就是“文件指針”。在 FILE類型的定義: typedef struct { short level。 /*文件狀態(tài)標(biāo)志 */ char fd。 /*如無緩沖區(qū)則不讀取字符 */ short bsize。 /*數(shù)據(jù)緩沖區(qū)的位置 */ unsigned ar *curp。 /*臨時文件 */ short token。 對于普通用戶而言,不必了解 FILE類型的結(jié)構(gòu)內(nèi)容,只要知道, 每個文件都對應(yīng)一個唯一的文件型指針變量,通過文件指針我們可以對它所指的文件進(jìn)行各種操作。 例如: FILE *fileP。習(xí)慣上也 籠統(tǒng)地把 fileP稱為指向一個文件的指針。在訪問文件之前,要先打開文件,然后才能訪問該文件,對文件操作結(jié)束后,還要關(guān)閉該文件。 (1) 文件的打開函數(shù) fopen fopen函數(shù)用來實(shí)現(xiàn)打開一個文件,其調(diào)用的一般形式為: FILE * fileP。 例如: fileP =fopen(“file1”,“r”); 它表示在當(dāng)前目錄下打開文件 file1,使用文件方式為“讀”操作,并使 fileP指向該文件。 ● 用“ w” 方式打開的文件只能向該文件寫入數(shù)據(jù)。 ● 如果想向一個已存在的文件末尾添加新的信息(不刪除原來的數(shù)據(jù)),則應(yīng)該用“ a ” 方式打開。 ● 用“ r+” 、“ w+” 、“ a+” 方式打開的文件 既可以用來寫入數(shù)據(jù),也可以用來讀出文件中的數(shù)據(jù)。在程序中可以用這一信息來判別是否完成打開文件的工作,并作相應(yīng)的處理。 exit(0)。 所謂關(guān)閉文件就是使文件指針變量不再指向該文件。 順利完成關(guān)閉文件操作時, fclose函數(shù)返回值為 0,否則返回 EOF( 1)。 在C語言中提供了多種文件讀寫的函數(shù): 字符讀寫函數(shù) : fgetc和 fputc 字符串讀寫函數(shù): fgets和 fputs 數(shù)據(jù)塊讀寫函數(shù): fread和 fwrite 格式化讀寫函數(shù): fscanf和 fprinf 使用以上函數(shù)都要求包含頭文件 。調(diào)用的形式為: ch=fgetc(fileP); fileP為文件型指針變量, ch為字符變量。讀字符時遇到文件結(jié)束符,函數(shù)返回一個文件結(jié)束標(biāo)志 EOF( 1)。 (2) 寫字符函數(shù) fputc fputc函數(shù)的功能是把一個字符寫入指定的文件中。 fileP為文件型指針變量。如果寫入成功則返回寫入的字符, 如果寫入失敗則返回一個 EOF( 1)。 函數(shù)調(diào)用的形式為: fgets(str,n, fileP); n是一個正整數(shù),為要求得到的字符數(shù),但從文件中讀出的字符串只有 n1個字符,然后在最后一個字符后加上串結(jié)束標(biāo)志 39。 因此得到的字符串共有 n個字符。 fileP為文件型指針變量。函數(shù)返回值為 str的首地址。 函數(shù)的調(diào)用形式為: fputs(s, fileP) s可以是字符串常量,也可以是字符數(shù)組名,或字符型指針變量。字符串末尾的’ \0’ 不輸出,若輸出成功,函數(shù)值返回為 0,失敗則為 EOF。這時候可以使用讀寫數(shù)據(jù)塊函數(shù),用來讀寫一個數(shù)據(jù)塊。 fwrite(buffer,size,count, fileP)。 size 表示要讀寫的字節(jié)數(shù)。 fileP表示文件指針。 不同之處在于 fscanf 函數(shù)和 fprintf函數(shù)的讀寫對象不是鍵盤和顯示器,而是磁盤文件。 ?9.文件的定位和測試 (1) 文件的定位 上一節(jié)介紹的對文件的讀寫方式都是 順序讀寫 ,即讀寫文件只能從頭開始,順序讀寫各個數(shù)據(jù)。 實(shí)現(xiàn)隨機(jī)讀寫的關(guān)鍵是按要求移動文件指針,這稱為文件的定位。此函數(shù)沒有返回值。 “位移量”是指以“起始點(diǎn)”為基點(diǎn),向前移動的字節(jié)數(shù)。當(dāng) 用常量表示 位移量時,直接在末尾加后綴“ L” 。其表示方法如表 72所示。 (2) 文件檢測函數(shù) C語言中常用的文件檢測函數(shù)有以下幾個: ● 文件結(jié)束檢測函數(shù) feof() 調(diào)用格式: feof(文件指針 ); 功能: 判斷文件是否處于文件結(jié)束位置,如文件結(jié)束,則返回值為 1,否則為 0。 如 ferror返回值為 0表示未出錯,否則表示有錯。 功能: 用于清除出錯標(biāo)志和文件結(jié)束標(biāo)志,使它們?yōu)?0值。 【 指導(dǎo) 】 本實(shí)驗(yàn)的功能是執(zhí)行了兩次磁盤文件操作:先用 fputc函數(shù)把輸入的字符放在 fileP指向的文件中,然后把文件中的內(nèi)容用 fgetc函數(shù)逐個讀取,在屏幕上顯示。如打開文件出錯,給出提示并退出程序。每次文件操作結(jié)束后,都要用 fclose函數(shù)關(guān)閉文件。 char charC。 exit(0)。 while ((charC =getchar( ))!=’’) { fputc(charC, fileP)。 if ((fileP =fopen(file,r))==NULL) { printf(不能打開文件 \n)。 } printf(文件內(nèi)容為 :\n)。 while(charC!=EOF) { putchar(charC)。 } fclose(fileP)。圖 713為該程序的一次運(yùn)行實(shí)例 . 圖 713 程序 EX7_9運(yùn)行結(jié)果 【 實(shí)驗(yàn) 】 有兩個磁盤文件 ,各存放若干行字母,今要求把這兩個文件中的信息按行交叉合并(即先是 一行,接著是 ,然后是 的第二行,跟著是 , ? ),輸出到一個新文件 。具體做法為:通過 fgets函數(shù)分別獲得文件 ,分別賦值給字符數(shù)組 str1和 str2,然后將字符數(shù)組 str1和 str2中的內(nèi)容依次寫入文件 。 /**/ include include include void main( )( ) { FILE *fp1,*fp2,*fp3。 if((fp1=fopen(,r))==NULL) {printf(file a1 cannot be opened\n)。} if((fp2=fopen(,r))==NULL) {printf(file a2 cannot be opened\n)。} if((fp3=fopen(,w+))==NULL) {printf(file a3 cannot be opened\n)。} while(fgets(str1,255,fp1)!=NULLamp。fgets(str2,255,fp2)!=NULL) { fputs(str1,fp3)。 } while(fgets(str1,255,fp1)!=NULL) { fputs(str1,fp3)。 } /*char charC。 rewind(fp2)。 printf(a1文件內(nèi)容為 :\n)。 while(charC!=EOF) { putchar(charC)。 } printf(a2文件內(nèi)容為 :\n)。 while(charC!=EOF) { putchar(charC)。 } printf(a3文件內(nèi)容為 :\n)。 while(charC!=EOF) { putchar(charC)。 }*/ fclose(fp1)。 fclose(fp3)。 圖 714 程序 EX7_10運(yùn)行結(jié)果
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1