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

正文內(nèi)容

第9章文件操作(已修改)

2024-10-12 19:19 本頁(yè)面
 

【正文】 ☆☆ 第 9章 文件操作 1 文件類型指針 打開一個(gè)文件時(shí)會(huì)返回一個(gè)指向 FILE結(jié)構(gòu)的指針 , 這個(gè)指針?lè)Q為文件指針 , 該指針指向所打開的文件 。 通過(guò)文件指針就可對(duì)它所指的文件進(jìn)行各種操作 。 定義文件指針變量的一般形式為: FILE *指針變量標(biāo)識(shí)符 。 注意 , FILE是系統(tǒng)定義的文件結(jié)構(gòu)體類型名 , 應(yīng)為大寫 。 在編程時(shí)不必關(guān)心 FILE結(jié)構(gòu)的具體細(xì)節(jié) , 只需在使用 I/O函數(shù)時(shí)用這個(gè)文件指針變量來(lái)指定所操作的文件 。 C語(yǔ)言中通過(guò)文件指針變量 , 對(duì)文件進(jìn)行打開 、 讀 、 寫及關(guān)閉操作 。 因文件指針類型及對(duì)文件進(jìn)行的操作函數(shù)的原型說(shuō)明都是放到 “ ”頭文件中 , 因此對(duì)文件操作的程序 , 在最前面都應(yīng)寫一行文件頭包含命令: include 。 ☆☆ 第 9章 文件操作 2 文件的打開與關(guān)閉 文件的打開 所謂打開文件 , 實(shí)際上是建立文件的各種有關(guān)信息 , 并使文件指針指向該文件 , 以便進(jìn)行其他操作 。 緩沖文件系統(tǒng)借助文件結(jié)構(gòu)體指針來(lái)對(duì)文件進(jìn)行管理和訪問(wèn) , 既可以讀寫字符 、字符串 、 格式化數(shù)據(jù) , 也可以讀寫二進(jìn)制數(shù)據(jù) 。 打開文件使用函數(shù) fopen( ), 其調(diào)用的一般形式為: 文件指針名 =fopen(文件名 ,文件打開模式 ) 其中 , “ 文件名 ” 是需要打開文件的文件名 , “ 文件打開模式 ” 是確定文件的數(shù)據(jù)操作方式 。 “ 文件名 ” 和 “ 文件打開模式 ” 都是字符串常量或字符數(shù)組 。 使用 fopen( )函數(shù)正常打開一個(gè)文件時(shí)會(huì)返回一個(gè)指向 FILE結(jié)構(gòu)的指針 , 因此 “ 文件指針名 ” 必須是被定義為 FILE類型的指針變量 。 在打開文件后 , 其后所有的文件處理函數(shù)都必須用返回的文件指針來(lái)引用該文件 。 ☆☆ 第 9章 文件操作 3 文件的打開與關(guān)閉 FILE *fp。 fp=fopen(, r)。 要打開的文件名 使用文件方式 為讀方式 本調(diào)用表示以讀的方式( “ r”模式即表示讀 “ read”)打開當(dāng)前目錄下文件名為 。 文件名可以包含路徑和文件名兩部分。 寫路徑時(shí)注意 C語(yǔ)言中,因?yàn)檗D(zhuǎn)義字符以反斜杠開頭,所以 “ \\”才是表示一個(gè)反斜杠。若路徑和文件名為: “ c:\”,則應(yīng)寫成“ c:\\tc\\”。 如果打開文件成功,則返回一個(gè)指向 起始地址的指針,并賦值給 fp文件指針變量。即 fp指向了文件,接下來(lái)對(duì)該文件的操作就可以通過(guò) fp指針來(lái)實(shí)現(xiàn)。 如果文件打開失敗,則返回一個(gè)空指針 NULL,賦值給 fp。 ☆☆ 第 9章 文件操作 4 文件的打開 文件的打開方式 打開方式 含義及說(shuō)明 r 以只讀方式打開一個(gè)文本文件 , 只允許讀數(shù)據(jù) w 以只寫方式打開或建立一個(gè)文本文件 , 只允許寫數(shù)據(jù) a 以追加方式打開一個(gè)文本文件 , 并在文件末尾寫數(shù)據(jù) r+ 以讀寫方式打開一個(gè)文本文件 , 允許讀和寫 w+ 以讀寫方式打開或建立一個(gè)文本文件 , 允許讀寫 a+ 以讀寫方式打開一個(gè)文本文件,允許讀,或在文件末追加數(shù) rb 以只讀方式打開一個(gè)二進(jìn)制文件,只允許讀數(shù)據(jù) wb 以只寫方式打開或建立一個(gè)二進(jìn)制文件,只允許寫數(shù)據(jù) ab 以追加方式打開一個(gè)二進(jìn)制文件,并在文件末尾寫數(shù)據(jù) rb+ 以讀寫方式打開一個(gè)二進(jìn)制文件,允許讀和寫 wb+ 以讀寫方式打開或建立一個(gè)二進(jìn)制文件,允許讀和寫 ab+ 以讀寫方式打開一個(gè)二進(jìn)制文件,允許讀,或在文件末追加數(shù)據(jù) ☆☆ 第 9章 文件操作 5 文件的打開 說(shuō)明: ( 1) 用 “ r”方式打開的文件 , 只能用于輸入 。 “ r”方式只能打開一個(gè)已經(jīng)存在的文件 。 ( 2) 用 “ w”方式打開的文件 , 只能用于輸出 。 如果指定的文件不存在 , 則新建一個(gè)文件;如果文件存在 , 則把原來(lái)的文件刪除 ,再重新建立一個(gè)空白的文件 。 ( 3) 用 “ a”方式打開的文件 , 也只能用于輸出 。 但它 只能打開存在的文件 , 并 保留該文件原有的數(shù)據(jù) , 可以 在原文件的末尾添加新的數(shù)據(jù) 。 ( 4)打開方式帶上 “ b”表示是對(duì) 二進(jìn)制文件 進(jìn)行操作。 帶上“ +”表示既可以讀,又可以寫,而對(duì)待文件存在與否的不同處理則按照 “ r”、 “ w”、 “ a”各自的規(guī)定。 ☆☆ 第 9章 文件操作 6 文件的打開 ( 5)如果在打開文件時(shí)發(fā)生錯(cuò)誤,即打開失敗, fopen都返回一個(gè)空指針 NULL。文件打開可能出現(xiàn)的錯(cuò)誤有: 試圖以 “ 讀 ” 方式 ( 帶 “ r”的方式 ) 打開一個(gè)并不存在的文件 。 新建文件 , 而磁盤上沒(méi)有足夠的剩余空間或磁盤被寫保護(hù) 。 試圖以 “ 寫 ” 方式 ( 帶 “ w”或 “ a”的方式 、 “ r+”或 “ rb+”方式 ) 打開被設(shè)置為 “ 只讀 ” 屬性的文件 。 用不正確的模式打開一個(gè)文件可能會(huì)破壞文件的內(nèi)容 。 ☆☆ 第 9章 文件操作 7 為避免因上述原因的出錯(cuò),常用以下的方法來(lái)打開一個(gè)文件: 文件的打開 if((fp=fopen(, r))==NULL) { printf(This file could not be opened !\n)。 exit(0) /*返回操作系統(tǒng) */ } else { ┇ /*此處編寫對(duì)文件讀 /寫的代碼 */ } ☆☆ 第 9章 文件操作 8 文件的打開與關(guān)閉 文件的關(guān)閉 對(duì)文件的操作完成后 , 應(yīng)確保關(guān)閉程序中打開的文件 , 以避免文件的數(shù)據(jù)丟失 。 關(guān)閉文件指斷開指針與文件之間的聯(lián)系 , 也就禁止再對(duì)該文件進(jìn)行操作 。 函數(shù) fclose(fp)用來(lái)關(guān)閉由指針 fp指定的文件 , 同時(shí)根據(jù)需要刷新緩沖區(qū) 。 如果文件成功關(guān)閉 , fclose( )函數(shù)將返回值 0, 否則返回 EOF。 磁盤已滿 、 磁盤被移走或者出現(xiàn) I/O錯(cuò)誤等都會(huì)導(dǎo)致 fclose( )函數(shù)執(zhí)行失敗 。 文件關(guān)閉函數(shù) fclose的調(diào)用形式: fclose(文件指針變量 )。 ☆☆ 第 9章 文件操作 9 文件的打開與關(guān)閉 不關(guān)閉文件可能會(huì) 丟失數(shù)據(jù) 磁盤文件 輸出文件緩沖區(qū) 輸入文件緩沖區(qū) 程序數(shù)據(jù)區(qū) a 緩沖文件系統(tǒng): fclose ☆☆ 第 9章 文件操作 10 文件的讀寫 在C語(yǔ)言中提供了多種文件讀寫的函數(shù): 字符讀寫函數(shù): fgetc()和 fputc() 字符串讀寫函數(shù): fgets()和 fputs() 數(shù)據(jù)塊讀寫函數(shù): fread()和 fwrite() 格式化讀寫函數(shù): fscanf()和 fprinf() 一般來(lái)說(shuō),對(duì)文本文件可按字符讀寫或按字符串讀寫,對(duì)二進(jìn)制文件可按數(shù)據(jù)塊的讀寫或格式化的讀寫 。 使用 fopen函數(shù)打開文件成功后,都會(huì)有屬于該文件一個(gè)文件讀寫位置指針 ,表示文件內(nèi)部即將要讀寫的位置 ,它是 FILE結(jié)構(gòu)的成員。 文件讀寫函數(shù)概述 ☆☆ 第 9章 文件操作 11 文件的讀寫 文件讀寫位置指針表示下一次讀寫數(shù)據(jù)操作所在的字節(jié)位置的整數(shù)值,這個(gè)字節(jié)位置也稱為“文件位移量”。這幾組文件讀寫函數(shù)均是指順序讀寫,即讀寫了一條信息后,文件讀寫位置指針自動(dòng)指向下一個(gè)讀寫單元。隨著讀和寫字節(jié)數(shù)的增大,文件讀寫位置指針也增大,讀多少個(gè)字節(jié),文件讀寫位置指針相應(yīng)也向后移動(dòng)多少個(gè)字節(jié)。 需要說(shuō)明的是 , 以 “ r”或 “ w”方式打開文件后 , 該文件讀寫位置指針初始值指向文件開頭;以 “ a”方式打開文件后 , 該文件讀寫位置指針初始值指向文件末尾 。 文件指針和文件內(nèi)部的位置指針是不同的。文件指針是指向整個(gè)文件的,在程序中定義,只要不重新賦值,文件指針的值是不變的。文件內(nèi)部的位置指針用于指示文件內(nèi)部的當(dāng)前讀寫位置,每讀寫一次,該指針均自動(dòng)向后移動(dòng),它不需在程序中定義,是由系統(tǒng)自動(dòng)設(shè)置的。 ☆☆ 第 9章 文件操作 12 文件的讀寫 在對(duì)文件進(jìn)行讀寫操作時(shí) , 需要判斷當(dāng)前讀寫位置 , 如果文件讀操作到最后 , 再進(jìn)行讀寫操作就會(huì)出錯(cuò) , 為了避免出錯(cuò) , C語(yǔ)言提供了下面的方式判斷文件是否讀完 。 1) 對(duì)于文本文件 , 由于它的結(jié)束標(biāo)記是 EOF( 即 1, 在 定義 ) , 因此 , 通常通過(guò)讀取的字符是不是結(jié)束標(biāo)志來(lái)判斷文本文件是否寫完 。 2) 對(duì)于二進(jìn)制文件 , 由于沒(méi)有 EOF的結(jié)束標(biāo)志 , 只能使用系統(tǒng)提供的 feof( )函數(shù)來(lái)判斷 , feof( )的使用格式是: feof(fp) 其中 , fp是文件指針變量 , 如果文件讀取結(jié)束則返回非 0值 , 沒(méi)結(jié)束返回 0值 。 所以讀寫控制通過(guò)下面的形式來(lái)控制: while( !feof(fp)) { ┇ /*此處寫入讀操作語(yǔ)句 */ } 3)文本文件可使用 feof( )函數(shù)按上面形式來(lái)判斷是否讀取結(jié)束。 ☆☆ 第 9章 文件操作 13 文件的讀寫 字符讀寫函數(shù) ( 1) 字符讀函數(shù) fgetc( ) 函數(shù) fgetc( )的功能是從指定的文件中讀一個(gè)字符 , 函數(shù)調(diào)用的一般形式: 字符變量 =fgetc(文件指針變量 )。 例如: ch=fgetc(fp1)。 /*從 fp1指向的文件中讀取一個(gè)字符并送入變量 ch中 */ 說(shuō)明:在 fgetc函數(shù)調(diào)用中 , 讀取的文件必須是以讀或讀寫方式打開的 , 讀取成功返回文件當(dāng)前位
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1