關(guān)關(guān)雎鳩 南郵 C語(yǔ)言課件 第11章_第1頁(yè)
關(guān)關(guān)雎鳩 南郵 C語(yǔ)言課件 第11章_第2頁(yè)
關(guān)關(guān)雎鳩 南郵 C語(yǔ)言課件 第11章_第3頁(yè)
關(guān)關(guān)雎鳩 南郵 C語(yǔ)言課件 第11章_第4頁(yè)
關(guān)關(guān)雎鳩 南郵 C語(yǔ)言課件 第11章_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、高級(jí)語(yǔ)言程序設(shè)計(jì) 2022/8/151第十一章 流與文件主講: 計(jì)算機(jī)學(xué)院 朱立華內(nèi)容提要本章介紹流與文件的有關(guān)知識(shí):什么是流,什么是文件,為什么需要文件文件的兩種類(lèi)型:文本文件與二進(jìn)制文件,數(shù)據(jù)的不同存儲(chǔ)形式文件操作需要用到的FILE類(lèi)型,文件操作的基本步驟重點(diǎn)是文件的幾種讀寫(xiě)方式:字符的讀寫(xiě)字符串的讀寫(xiě)無(wú)格式讀寫(xiě)格式讀寫(xiě)文件的隨機(jī)訪(fǎng)問(wèn)方式,重點(diǎn)是幾個(gè)改變文件指針位置的函數(shù)的使用方法兩種用程序?qū)崿F(xiàn)文件復(fù)制的方法2022/8/153流與文件的概念流:數(shù)據(jù)的流動(dòng)稱(chēng)為流,-數(shù)據(jù)流動(dòng)總是和設(shè)備或外部介質(zhì)有關(guān) 文件:與數(shù)據(jù)流動(dòng)有關(guān)的設(shè)備和介質(zhì)統(tǒng)稱(chēng)為文件 已接觸到的文件:源文件、目標(biāo)文件、可執(zhí)行文件等還

2、有什么需要用到文件?:之前所有程序的原始數(shù)據(jù)或者從鍵盤(pán)讀入或者賦值;每次運(yùn)行的結(jié)果未保存下來(lái),下次想看結(jié)果必須再次運(yùn)行程序。但是,程序中的原始數(shù)據(jù)、中間結(jié)果、最終結(jié)果有時(shí)需要以數(shù)據(jù)文件的形式保存下來(lái)并在程序中執(zhí)行相關(guān)操作文件操作解決的問(wèn)題:通過(guò)運(yùn)行程序,能實(shí)現(xiàn)數(shù)據(jù)文件的讀寫(xiě)存儲(chǔ)等操作,從而解決程序中的數(shù)據(jù)永久存儲(chǔ)問(wèn)題文件操作的主要步驟:定義文件指針打開(kāi)文件,讀寫(xiě),關(guān)閉2022/8/154文件指針每一個(gè)文件對(duì)應(yīng)一個(gè)文件指針,文件操作必須通過(guò)文件指針才能完成。幾個(gè)常用的文件指針:鍵盤(pán)-stdin,顯示器-stdout,打印機(jī)sprn從鍵盤(pán)(stdin)和顯示器(stdout)輸入輸出數(shù)據(jù)的操作通常

3、將鍵盤(pán)文件和顯示器文件省略了字符、字符串、數(shù)值型變量的輸入/輸出用終端方式以及等效的文件輸入輸出方式對(duì)比如下: 終端輸入輸出 文件輸入輸出 char ch; /字符型ch=getchar(); putchar(ch); char ch;ch=fgetc(stdin);fputc(ch,stdout); char s10; /字符串gets(s); puts(s); char s10; /字符串fgets(s,5,stdin);fputs(s,stdout); int n; /整型scanf(“%d”,&n); printf(“n=%dn”,n); int n; /整型fscanf(stdin,

4、“%d”,&n);fprintf(stdout,“n=%dn”,n); 2022/8/155文件指針以下主要討論磁盤(pán)文件,磁盤(pán)是一種外部介質(zhì),與鍵盤(pán)和顯示器不同,它可以持久地保存數(shù)據(jù)。 專(zhuān)門(mén)存放數(shù)據(jù)的磁盤(pán)文件我們稱(chēng)其為數(shù)據(jù)文件 流的數(shù)據(jù)組織形式分為字符序列和字節(jié)序列,前者稱(chēng)為文本流,后者稱(chēng)為二進(jìn)制流。 例:double型常量136467.56789,如果是一個(gè)文本流,共占12個(gè)字節(jié)(一個(gè)字符對(duì)應(yīng)一個(gè)ASCII碼,每一個(gè)ASCII碼占一個(gè)字節(jié));如果是二進(jìn)制流,共占8個(gè)字節(jié)例:long int型常量100,如果是一個(gè)文本流,共占3個(gè)字節(jié);如果是二進(jìn)制流,共占4個(gè)字節(jié)與文本流和二進(jìn)制流對(duì)應(yīng)的磁盤(pán)文

5、件分別稱(chēng)為文本文件和二進(jìn)制文件。2022/8/156文件的打開(kāi)與關(guān)閉并不是每一次讀寫(xiě)文件操作都需要進(jìn)行磁盤(pán)訪(fǎng)問(wèn)讀寫(xiě)操作的本質(zhì):每一次對(duì)磁盤(pán)的讀寫(xiě)都要移動(dòng)磁頭,以尋找磁道扇區(qū)。若程序中的每一次讀寫(xiě)操作都對(duì)應(yīng)一次實(shí)際的磁盤(pán)訪(fǎng)問(wèn),則要花費(fèi)很多讀寫(xiě)時(shí)間,而且對(duì)磁盤(pán)的損耗大。 解決方案:系統(tǒng)在內(nèi)存中為程序所需要的每一個(gè)文件開(kāi)辟一個(gè)“緩沖區(qū)”:當(dāng)程序從磁盤(pán)文件讀取數(shù)據(jù)時(shí),一次將一批數(shù)據(jù)送到(輸入)緩沖區(qū),然后將緩沖區(qū)的數(shù)據(jù)傳給程序中的接收變量;如果向磁盤(pán)文件輸出時(shí),先將程序中的數(shù)據(jù)送到(輸出)緩沖區(qū),待緩沖區(qū)裝滿(mǎn)后,再一次傳給磁盤(pán)文件。FILE類(lèi)型:讀取一個(gè)文件需要許多信息,例如,與該文件對(duì)應(yīng)的內(nèi)存文件緩

6、沖區(qū)的大小和地址、文件當(dāng)前的讀寫(xiě)位置、文件緩沖區(qū)中未處理的字符個(gè)數(shù)、文件使用方式等。這些信息存放在一個(gè)結(jié)構(gòu)變量中,我們稱(chēng)此結(jié)構(gòu)為文件類(lèi)型,取名FILE。 2022/8/157文件的打開(kāi)與關(guān)閉File類(lèi)型的定義:struct FILE short level;/文件緩沖區(qū)滿(mǎn)或空的程度 unsigned flags;/文件狀態(tài)標(biāo)志 char fd;/文件描述符 unsigned char hold;/若無(wú)文件緩沖區(qū),則不讀取數(shù)據(jù) short bsize;/文件緩沖區(qū)大小 unsigned char *buffer;/文件緩沖區(qū)的位置 unsigned char *curp;/指向文件緩沖區(qū)當(dāng)前數(shù)據(jù)

7、的指針 unsigned istemp;/臨時(shí)文件指示器 short token;/用于有效性檢驗(yàn) ;2022/8/158文件的打開(kāi)與關(guān)閉程序用到一個(gè)文件,需要系統(tǒng)在內(nèi)存建立一個(gè)文件緩沖區(qū),并返回一個(gè)文件類(lèi)型變量的地址(FILE類(lèi)型的指針),這是打開(kāi)文件 打開(kāi)文件通過(guò)調(diào)用fopen函數(shù)實(shí)現(xiàn),原型為: FILE * fopen(char *filename,char *mode);因此,程序首先需要定義一個(gè)FILE *指針來(lái)接收f(shuō)open函數(shù)的返回值,以后通過(guò)該指針對(duì)文件進(jìn)行各種讀寫(xiě)操作例:FILE *fp;fp=fopen(D:records.txt,r);如果文件打開(kāi)成功,則返回一個(gè)有效地址

8、值;如果打開(kāi)失敗則返回值為NULL(0)filemame表示磁盤(pán)文件名 mode代表文件使用方式 返回值為FILE*指針 帶盤(pán)符路徑的完整文件名以r方式打開(kāi)表示從文件中讀數(shù)據(jù)入內(nèi)存2022/8/159文件的打開(kāi)與關(guān)閉重點(diǎn)是文件的打開(kāi)方式,記住下面5個(gè)符號(hào):r(意為read):打開(kāi)一個(gè)已存在的文件以便從文件中讀數(shù)據(jù)入內(nèi)存,指針fp-curp定位于文件頭;若文件不存在則打開(kāi)失敗返回0w(意為write):建立一個(gè)新文件以便寫(xiě)數(shù)據(jù)入文件,指針fp-curp定位于文件頭;若文件已存在則清空原文件,打開(kāi)失敗返回0a(意為append):打開(kāi)一個(gè)已存在的文件以便在原文件尾追加新的內(nèi)容,指針fp-curp定

9、位于文件尾;若文件不存在則相當(dāng)于w的作用,打開(kāi)失敗返回0+:作為前三個(gè)的后綴使用,表示打開(kāi)之后既可讀又可寫(xiě)b(意為binary):作為前3個(gè)的后綴使用,表示打開(kāi)的是一個(gè)二進(jìn)制文件,沒(méi)有此后綴則默認(rèn)打開(kāi)的是文本文件2022/8/1510文件的打開(kāi)與關(guān)閉因此5個(gè)符號(hào)組合起來(lái)共有12種打開(kāi)方式:(1)r、w、a: 打開(kāi)文本文件,只可讀或只可寫(xiě)(追加)(2)r+、w+ 、a+:打開(kāi)文本文件,既可讀又可寫(xiě)(追加)(3)rb、wb、ab:打開(kāi)二進(jìn)制文件,只可讀或只可寫(xiě)(追加)(4)rb+、wb+、ab+:打開(kāi)二進(jìn)制文件,既可讀又可寫(xiě)(追加)要保證打開(kāi)文件正確才能執(zhí)行后續(xù)操作,用如下代碼:FILE *fp;

10、fp=fopen(D:records.txt,r);if(!fp) /如果文件指針為0則打開(kāi)失敗 printf(cant open file s.txt n); exit(1);FILE *fp;if(!(fp=fopen(D:records.txt,r)2022/8/1511文件的打開(kāi)與關(guān)閉文件打開(kāi)后執(zhí)行讀寫(xiě)操作完畢, 需要釋放文件緩沖區(qū),這是關(guān)閉文件,所調(diào)用的函數(shù)原型為:int fclose(FILE *fp);特別提醒:在執(zhí)行寫(xiě)操作之后必須調(diào)用函數(shù)fclose,系統(tǒng)將在釋放輸出文件緩沖區(qū)之前,將其中最后一批還未充滿(mǎn)該緩沖區(qū)的數(shù)據(jù)寫(xiě)入文件。因此,如果執(zhí)行文件寫(xiě)操作之后沒(méi)有關(guān)閉文件,可能丟失

11、數(shù)據(jù).fclose執(zhí)行完畢后,文件指針與文件之間不再有關(guān)聯(lián) 對(duì)標(biāo)準(zhǔn)輸入文件(鍵盤(pán))、標(biāo)準(zhǔn)輸出文件(顯示器)和標(biāo)準(zhǔn)出錯(cuò)輸出文件(顯示器),都由系統(tǒng)自動(dòng)打開(kāi)和關(guān)閉。成功關(guān)閉文件,返回0值,否則返回非0值 2022/8/1512文件的讀寫(xiě)根據(jù)文件讀寫(xiě)操作涉及到的數(shù)據(jù)的類(lèi)型和不同方式,分四組介紹:字符的讀寫(xiě)字符串的讀寫(xiě)無(wú)格式讀寫(xiě)格式讀寫(xiě)(1)字符的讀寫(xiě):處理文本流(文本文件),文本流是字符序列,字符讀寫(xiě)函數(shù)以字符為單位讀寫(xiě):int fputc(int c, FILE *fp);int fgetc(FILE *fp);程序11.1 從鍵盤(pán)輸入一段文本,存儲(chǔ)到文本文件D:poem.txt中(fputc的應(yīng)

12、用)將字符c寫(xiě)入流,指針fp-curp后移一個(gè)字節(jié),。若成功則返回c,否則返回EOF(-1) fgetc 從流中讀取一個(gè)字符返回, 指針fp-curp后移一個(gè)字節(jié),讀到結(jié)尾標(biāo)志返回EOF動(dòng)態(tài)演示過(guò)程2022/8/1513文件的讀寫(xiě)字符讀寫(xiě)程序11.1的幾點(diǎn)說(shuō)明:(1)該程序運(yùn)行后,屏幕上無(wú)任何輸出,讀入的內(nèi)容寫(xiě)入到了文件D:poem.txt中 (2)該文本文件的顯示方式有多種:在VC+下直接用文件中的打開(kāi)命令可以在客戶(hù)區(qū)中顯示回到操作系統(tǒng)的“資源管理器”或“我的電腦”,打開(kāi)D盤(pán),再用鼠標(biāo)左鍵雙擊打開(kāi)“poem.txt”,就可以在默認(rèn)的記事本中顯示文件內(nèi)容進(jìn)入到“命令提示符”狀態(tài)鍵入命令:typ

13、e d:poem.txt,就可以在DOS界面下顯示文件內(nèi)容。 通過(guò)程序11.2,打開(kāi)該文件,讀出文件中的內(nèi)容,在顯示器顯示。2022/8/1514文件的讀寫(xiě)字符讀寫(xiě)程序11.2:從文件D:poem.txt讀出文本,在顯示器上輸出。 幾個(gè)關(guān)鍵性問(wèn)題: (1)打開(kāi)文件時(shí)一定要判斷是否正確打開(kāi),注意要保證相應(yīng)的路徑中一定存在該文件(2) 正確判斷一個(gè)文件是否結(jié)束有兩種方式一種是根據(jù)當(dāng)前讀到的字符是否為EOF(-1)另一種是用feof(fp)函數(shù)判斷指針fp-curp是否已指在文件尾 ,關(guān)鍵語(yǔ)句:while(ch=fgetc(fp)!=EOF) putchar(ch); /輸出該字符如果當(dāng)前讀入的字符

14、不是文件結(jié)尾標(biāo)志動(dòng)態(tài)演示過(guò)程動(dòng)態(tài)演示展示的是與此段代碼等效的控制方式,注意比較函數(shù)feof的作用是判斷文件是否結(jié)束,結(jié)束返回1,未結(jié)束返回02022/8/1515文件的讀寫(xiě)字符串讀寫(xiě)(2)字符串的讀寫(xiě):處理文本流(文本文件),文本流是字符序列,字符串讀寫(xiě)函數(shù)以字符串為單位讀寫(xiě):int fputs(char *s, FILE *fp);char *fgets(char *s, int n, FILE *fp);關(guān)于fgets函數(shù)再作幾點(diǎn)說(shuō)明:若遇回車(chē)符或文件結(jié)束符之前,已讀取了n-1個(gè)字符,則讀取結(jié)束,加上串結(jié)束符0組成字符串,存入s指向的內(nèi)存區(qū)若提前遇到換行符,則讀取結(jié)束,在換行符后加上串結(jié)束

15、符0組成字符串,存入s指向的內(nèi)存區(qū)。若提前遇到文件結(jié)束符,則讀取結(jié)束,將文件結(jié)束符換為串結(jié)束符0組成字符串存入s指向的內(nèi)存區(qū)。若讀入正常結(jié)束,則返回值是字符串指針s,否則返回空指針值NULL。將字符串s舍去串結(jié)束符0之后從fp-curp所指的當(dāng)前位置寫(xiě)起,錯(cuò)誤時(shí)返回EOF(-1),否則返回一個(gè)非負(fù)數(shù)。 從fp-curp位置開(kāi)始最多讀取n-1個(gè)字符存入串s,串末加0,正常讀取返回s的位置,否則返回 NULL(0) 2022/8/1516文件的讀寫(xiě)字符串讀寫(xiě)程序11.3:從文件D:poem.txt逐行讀入文本,在顯示器上輸出。幾個(gè)關(guān)鍵性問(wèn)題: (1)打開(kāi)文件時(shí)一定要判斷是否正確打開(kāi),注意要保證相應(yīng)

16、的路徑中一定存在該文件(2) 正確判斷一個(gè)文件是否結(jié)束有兩種方式一種是讀入一個(gè)字符串,返回值是否非空另一種是用feof(fp)函數(shù)判斷指針fp-curp是否已指在文件尾 .關(guān)鍵語(yǔ)句:while(fgets(s,256,fp)!=NULL) printf(“%s”,s); /輸出該字符串動(dòng)態(tài)演示過(guò)程動(dòng)態(tài)演示展示的是與此段代碼等效的控制方式,注意比較2022/8/1517文件的讀寫(xiě)無(wú)格式讀寫(xiě)(3)無(wú)格式讀寫(xiě)也稱(chēng)為按數(shù)據(jù)塊讀寫(xiě),主要用于處理二進(jìn)制流(二進(jìn)制文件)。二進(jìn)制流是字節(jié)序列,將字節(jié)序列分段截取,每一段代表一個(gè)數(shù)據(jù)元素 int fwrite(const void *buffer, int si

17、ze, int n, FILE *fp); int fread(void *buffer, int size, int n, FILE *fp);讀寫(xiě)操作之后,指針fp-curp自動(dòng)后移,準(zhǔn)備下一次讀寫(xiě)。程序11.4 從鍵盤(pán)輸入一批學(xué)生記錄,存儲(chǔ)到文件D:st.rec中幾個(gè)關(guān)鍵性問(wèn)題: (1)定義結(jié)構(gòu)體類(lèi)型表示學(xué)生記錄(2) 打開(kāi)文件并判斷是否正確打開(kāi)(3)從鍵盤(pán)上逐條記錄輸入,逐條記錄寫(xiě)入文件從程序數(shù)據(jù)區(qū)地址buffer開(kāi)始,將連續(xù)size個(gè)字節(jié)的內(nèi)容作為一個(gè)字段,一共n個(gè)字段寫(xiě)入fp-curp指向的緩沖區(qū),返回值是實(shí)際寫(xiě)入的數(shù)據(jù)塊個(gè)數(shù) 從fp-curp指向的緩沖區(qū),將連續(xù)size個(gè)字節(jié)的內(nèi)

18、容作為一個(gè)字段,一共n個(gè)字段從文件中讀出寫(xiě)入buffer指向的空間,返回值為實(shí)際讀到的數(shù)據(jù)塊個(gè)數(shù)。 動(dòng)態(tài)演示過(guò)程2022/8/1518文件的讀寫(xiě)無(wú)格式讀寫(xiě)程序11.4結(jié)果分析:(1)運(yùn)行該程序,屏幕不產(chǎn)生輸出,結(jié)果寫(xiě)入到磁盤(pán)文件中(2) 以查看文本文件的幾種方式打開(kāi)看磁盤(pán)文件,有亂碼,二進(jìn)制文件與文本文件不同,無(wú)法直接查看(3)如果想讀二進(jìn)制文件內(nèi)容,編程實(shí)現(xiàn),將文件內(nèi)容讀到內(nèi)存變量中,再通過(guò)輸出內(nèi)存變量值的方式實(shí)現(xiàn),注意類(lèi)型一致性程序11.5:從文件D:st.rec中讀取記錄在顯示器顯示 幾個(gè)關(guān)鍵性問(wèn)題: (1)定義結(jié)構(gòu)體類(lèi)型表示學(xué)生記錄,與11.4中的類(lèi)型一致(2) 打開(kāi)文件并判斷是否正確

19、打開(kāi)(3)從文件中逐條讀出記錄及時(shí)判斷是否正確讀出,再輸出動(dòng)態(tài)演示過(guò)程2022/8/1519文件的讀寫(xiě)格式讀寫(xiě)(4)標(biāo)準(zhǔn)輸入輸出函數(shù)scanf和printf實(shí)際上就是鍵盤(pán)文件(stdin)和顯示器文件(stdout)上的格式讀寫(xiě) 磁盤(pán)文件的格式讀寫(xiě)與上述兩個(gè)函數(shù)類(lèi)似,只是要指明文件指針而不能缺少,函數(shù)名前面加f,具體地:int fscanf(FILE *fp,const char* format,地址1, 地址2); int fprintf(FILE *fp,const char* format,輸出參數(shù)1, 輸出參數(shù)2);讀寫(xiě)操作之后,指針fp-curp自動(dòng)后移,準(zhǔn)備下一次讀寫(xiě)。程序11.6

20、:格式讀寫(xiě)示例,從磁盤(pán)文件D:st.txt讀入數(shù)據(jù),然后在顯示器上輸出。 說(shuō)明:此文本文件需事先建立,每行對(duì)應(yīng)一條學(xué)生記錄從fp讀入數(shù)據(jù)給相應(yīng)變量,其余參數(shù)和返回值與scanf完全一樣 向fp寫(xiě)入數(shù)據(jù),其余參數(shù)和返回值與printf完全一樣 動(dòng)態(tài)演示過(guò)程2022/8/1520文件的讀寫(xiě)格式讀寫(xiě)程序11.6 結(jié)果分析:(1)該程序運(yùn)行時(shí),無(wú)需從鍵盤(pán)上讀入任何數(shù)據(jù),直接從文件中讀信息然后輸出 (2)該程序需要事先建立文本文件,可以直接用記事本建立,也可以事先編程用fprintf輸入每條學(xué)生記錄建立(3)與程序11.5相比較,對(duì)應(yīng)于記錄的文件可以是二進(jìn)制文件,也可以是文本文件;如果是二進(jìn)制文件,一般

21、對(duì)應(yīng)用fread和fwrite函數(shù)進(jìn)行讀寫(xiě);如果是文本文件,一般對(duì)應(yīng)用fscanf和fprintf函數(shù)進(jìn)行讀寫(xiě)(4)究竟用文本文件還是二進(jìn)制文件更好?這要取決于用戶(hù)需求,如果希望以普通方式打開(kāi)直接查看到文件內(nèi)容,則用文本文件;如果希望讀寫(xiě)操作時(shí)的效率更高,則采用二進(jìn)制文件,因?yàn)閷?duì)數(shù)據(jù)不存在格式上的轉(zhuǎn)換2022/8/1521文件的隨機(jī)訪(fǎng)問(wèn)前面介紹的各種文件操作都是按順序讀寫(xiě)的,各種文件讀寫(xiě)函數(shù)在操作結(jié)束后指針fp-curp會(huì)自動(dòng)后移,以便下一次執(zhí)行讀寫(xiě)操作。 要實(shí)現(xiàn)文件隨機(jī)訪(fǎng)問(wèn)的最根本點(diǎn):指針fp-curp可以按需要任意移動(dòng)到指定位置,因?yàn)樽x寫(xiě)操作總是從fp-curp指針位置開(kāi)始的幾個(gè)改變文件指

22、針位置的函數(shù):int rewind(FILE *fp);int fseek(FILE *fp,long offset,int from);long ftell(FILE *fp); 該函數(shù)用于定位指針fp-curp,使其指向文件頭 該函數(shù)用于指針fp-curp隨機(jī)定位,可以將指針fp-curp從from起始位置移動(dòng)offset指定的字節(jié)數(shù),指向新的位置。 0(字符常量是SEEK_SET)表示起始位置是文件頭;1(字符常量是SEEK_CUR)表示起始位置是當(dāng)前位置;2(字符常量是SEEK_END)表示起始位置是文件尾 正數(shù):表示向文件尾移動(dòng);0:表示回到起始位置(第三參數(shù)所指位置);負(fù)數(shù):表示向文件頭移動(dòng)。 返回指針fp-curp相對(duì)文件頭的當(dāng)前位置,返回值-1L表示出錯(cuò)。 2022/8/1522文件的隨機(jī)訪(fǎng)問(wèn)其他幾個(gè)常用的文件函數(shù):int feof(FILE *fp); int ferror(FILE *fp);long ftell(FILE *fp); void clearer(FILE *fp);程序11.7 將文本文件D:poem.txt中的小寫(xiě)字母改為大寫(xiě)字母。(在VC+下直接運(yùn)行) 幾個(gè)關(guān)鍵性問(wèn)題: (1)文件的打開(kāi)方式應(yīng)為r+,讀為主但允許寫(xiě)入,并判斷是否正確打開(kāi)(2)每

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論