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

正文內(nèi)容

[理學(xué)]模塊7_位運(yùn)算與文件(編輯修改稿)

2024-11-12 21:16 本頁面
 

【文章內(nèi)容簡介】 fgetc fgetc函數(shù)的功能是從指定的文件中讀一個(gè)字符 ,讀取的文件必須是以讀或讀寫方式打開的。調(diào)用的形式為: ch=fgetc(fileP); fileP為文件型指針變量, ch為字符變量。其意義是從打開的文件 fileP中讀取一個(gè)字符并送入ch中。讀字符時(shí)遇到文件結(jié)束符,函數(shù)返回一個(gè)文件結(jié)束標(biāo)志 EOF( 1)。 EOF是在 定義的符號(hào)常量,值為 1。 (2) 寫字符函數(shù) fputc fputc函數(shù)的功能是把一個(gè)字符寫入指定的文件中。 調(diào)用的形式為: fputc(ch, fileP); ch是要輸出的字符,它可以是字符常量或者是字符變量。 fileP為文件型指針變量。其意義是把字符 ch寫入到 fileP所指向的文件中。如果寫入成功則返回寫入的字符, 如果寫入失敗則返回一個(gè) EOF( 1)。 (3) 讀字符串函數(shù) fgets fgets函數(shù)的功能是從指定的文件中讀一個(gè)字符串到字符數(shù)組中。 函數(shù)調(diào)用的形式為: fgets(str,n, fileP); n是一個(gè)正整數(shù),為要求得到的字符數(shù),但從文件中讀出的字符串只有 n1個(gè)字符,然后在最后一個(gè)字符后加上串結(jié)束標(biāo)志 39。\039。, 因此得到的字符串共有 n個(gè)字符。把得到的字符串放在字符數(shù)組str里面。 fileP為文件型指針變量。如果在讀完 n1個(gè)字符之前遇到換行符或 EOF,讀操作即結(jié)束。函數(shù)返回值為 str的首地址。 (4) 寫字符串函數(shù) fputs fputs函數(shù)的功能是向指定的文件寫入一個(gè)字符串。 函數(shù)的調(diào)用形式為: fputs(s, fileP) s可以是字符串常量,也可以是字符數(shù)組名,或字符型指針變量。 fileP為文件型指針變量。字符串末尾的’ \0’ 不輸出,若輸出成功,函數(shù)值返回為 0,失敗則為 EOF。 ?7.?dāng)?shù)據(jù)塊讀寫函數(shù) fread和 fwrite 有時(shí)候需要讀寫一組數(shù)據(jù),如一個(gè)數(shù)組的元素,一個(gè)結(jié)構(gòu)變量的值等。這時(shí)候可以使用讀寫數(shù)據(jù)塊函數(shù),用來讀寫一個(gè)數(shù)據(jù)塊。函數(shù)調(diào)用的一般形式為: fread(buffer,size,count, fileP)。 fwrite(buffer,size,count, fileP)。 其中: buffer是一個(gè)指針,在 fread函數(shù)中,它表示存放輸入數(shù)據(jù)的首地址,在 fwrite函數(shù)中,它表示存放輸出數(shù)據(jù)的首地址。 size 表示要讀寫的字節(jié)數(shù)。 count 表示要讀寫的數(shù)據(jù)塊塊數(shù)(即 count個(gè) size大的數(shù)據(jù)塊)。 fileP表示文件指針。 ?8.格式化讀寫函數(shù) fscanf和 fprintf fscanf函數(shù), fprintf函數(shù)與前面使用的scanf和 printf 函數(shù)的功能相似,都是格式化讀寫函數(shù)。 不同之處在于 fscanf 函數(shù)和 fprintf函數(shù)的讀寫對(duì)象不是鍵盤和顯示器,而是磁盤文件。函數(shù)的調(diào)用格式為: fscanf(文件指針,格式字符串,輸入表列 ); fprintf(文件指針,格式字符串,輸出表列 ); 要注意的是,當(dāng)在內(nèi)存和磁盤頻繁交換數(shù)據(jù)的情況下,最好不使用這兩個(gè)函數(shù),而使用 fread和 fwrite函數(shù)。 ?9.文件的定位和測試 (1) 文件的定位 上一節(jié)介紹的對(duì)文件的讀寫方式都是 順序讀寫 ,即讀寫文件只能從頭開始,順序讀寫各個(gè)數(shù)據(jù)。但在實(shí)際問題中常要求只讀寫文件中某一指定的部分,也就是移動(dòng)文件指針到需要讀寫的位置,再進(jìn)行讀寫,這種讀寫稱為隨機(jī)讀寫 。 實(shí)現(xiàn)隨機(jī)讀寫的關(guān)鍵是按要求移動(dòng)文件指針,這稱為文件的定位。 rewind 函數(shù) :調(diào)用形式為 rewind(文件指針 ); 它的功能是把文件指針重新移到文件的開頭。此函數(shù)沒有返回值。 fseek 函數(shù) :fseek函數(shù)用來移動(dòng)文件指針, 其調(diào)用形式為: fseek(文件指針,位移量,起始點(diǎn) ); 其中:“文件指針”指向被移動(dòng)的文件。 “位移量”是指以“起始點(diǎn)”為基點(diǎn),向前移動(dòng)的字節(jié)數(shù)。要求位移量是 long型數(shù)據(jù),以便在文件的長度大于 64K 時(shí)不會(huì)出問題。當(dāng) 用常量表示 位移量時(shí),直接在末尾加后綴“ L” ?!捌鹗键c(diǎn)”表示從文件的什么位置開始計(jì)算位移量,規(guī)定的起始點(diǎn)有三種:文件首,當(dāng)前位置和文件尾。其表示方法如表 72所示。 表 72 文件指針三種起始點(diǎn) 起始點(diǎn) 表示符號(hào) 數(shù)字表示 文件首 SEEK__SET 0 當(dāng)前位置 SEEK__CUR 1 文件末尾 SEEK__END 2 fseek函數(shù)一般用于二進(jìn)制文件,這是因?yàn)槲谋疚募M(jìn)行轉(zhuǎn)換,在計(jì)算位置的時(shí)候會(huì)出現(xiàn)錯(cuò)誤 。 (2) 文件檢測函數(shù) C語言中常用的文件檢測函數(shù)有以下幾個(gè): ● 文件結(jié)束檢測函數(shù) feof() 調(diào)用格式: feof(文件指針 ); 功能: 判斷文件是否處于文件結(jié)束位置,如文件結(jié)束,則返回值為 1,否則為 0。 ● 讀寫文件出錯(cuò)檢測函數(shù) ferror() 調(diào)用格式: ferror(文件指針 ); 功能: 檢查文件在用各種輸入輸出函數(shù)進(jìn)行讀寫時(shí)是否出錯(cuò)。 如 ferror返回值為 0表示未出錯(cuò),否則表示有錯(cuò)。 ● 文件出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志置 0函數(shù) clearerr() 調(diào)用格式: clearerr(文件指針 )。 功能: 用于清除出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志,使它們?yōu)?0值。 技能訓(xùn)練 【 實(shí)驗(yàn) 】 編寫程序,從鍵盤上輸入一系列字符,寫到磁盤文件 file中,以 作為輸入的結(jié)束標(biāo)志,然后把文件中的內(nèi)容在屏幕上輸出。 【 指導(dǎo) 】 本實(shí)驗(yàn)的功能是執(zhí)行了兩次磁盤文件操作:先用 fputc函數(shù)把輸入的字符放在 fileP指向的文件中,然后把文件中的內(nèi)容用 fgetc函數(shù)逐個(gè)讀取,在屏幕上顯示。 程序定義了文件指針 fileP,先以寫方式打開文本文件 file,并使 fileP指向該文件。如打開文件出錯(cuò),給出提示并退出程序。輸入字符到文件中的循環(huán)是以輸入“ ” 作為循環(huán)結(jié)束的標(biāo)志; 然后再以讀方式打開文本文件 file,循環(huán)讀取文本文件的每一個(gè)字符,并顯示在屏幕上,并以 EOF作為循環(huán)的結(jié)束標(biāo)志,也就是判斷是否讀到文件的結(jié)尾。每次文件操作結(jié)束后,都要用 fclose函數(shù)關(guān)閉文件。 /**/ include include include void main( )( ) { FILE *fileP。 char charC。 if((fileP =fopen(file,w))==NULL) { printf(不能打開文件 \n)。 exit(0)。 } printf(“請(qǐng)輸入字符 :\n”)。 while ((charC =getchar( ))!=’’) { fputc(charC, fileP)。 } fclose(fileP)。 if ((fileP =fopen(file,r))==NULL) { printf(不能打開文件 \n)。 exit(0)。 } printf(文件內(nèi)容為 :\n)。 charC =fgetc(fileP)。 while(charC!=EOF) { putchar(charC)。 charC =fgetc(fileP)。 } fclose(fileP)。 } 該程序首先打開當(dāng)前目錄中文件名為 file的文件,然后從鍵盤上輸入字符并存儲(chǔ)到文件 file 中,輸入完成后關(guān)閉文件 file,最后再次打開文件 file,并輸出文件 file中的字符。圖 713為該程序的一次運(yùn)行實(shí)例 . 圖 713 程序 EX7_9運(yùn)行結(jié)果 【 實(shí)驗(yàn) 】 有兩個(gè)磁盤文件 ,各存放若干行字母,今要求把這兩個(gè)文件中的信息按行交叉合并(即先是 一行,接著是 ,然后是 的第二行,跟著是 , ? ),輸出到一個(gè)新文件 。 【 指導(dǎo) 】 以讀方式打開磁盤文件 ,然后依次讀取 ,交叉存入新文件 ,因此可以通過 3個(gè)循環(huán)語句實(shí)現(xiàn)。具體做法為:通過 fgets函數(shù)分別獲得文件 ,分別賦值給字符數(shù)組 str1和 str2,然后將字符數(shù)組 str1和 str2中的內(nèi)容依次寫入文件 。假如其中某個(gè)文件讀取完成,則將另一文件剩余行寫人文件。 /**/ include include include void main( )( ) { FILE *fp1,*fp2,*fp3。 char str1[255],str2[255]。 if((fp1=fopen(,r))==NULL) {printf(file a1 cannot be opened\n)。exit(0)。} if((fp2=fopen(,r))==NULL) {printf(file a2
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1