C語(yǔ)言程序設(shè)計(jì)案例教程課件-第十一章-文件_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)案例教程課件-第十一章-文件_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)案例教程課件-第十一章-文件_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)案例教程課件-第十一章-文件_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)案例教程課件-第十一章-文件_第5頁(yè)
已閱讀5頁(yè),還剩44頁(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)介

第11章文件

學(xué)習(xí)內(nèi)容11.1磁盤(pán)文件信息復(fù)制11.2文件類(lèi)型指針11.3文件的基本操作11.4文件的定位函數(shù)11.5文件出錯(cuò)檢測(cè)函數(shù)11.6小型案例11.7小

結(jié)11.1磁盤(pán)文件信息復(fù)制問(wèn)題

在我們使用電腦時(shí),時(shí)常要將一個(gè)磁盤(pán)文件中的信息復(fù)制到另一個(gè)磁盤(pán)文件中,使其達(dá)到對(duì)文件信息備份及另存的目的。為此我們可以編寫(xiě)一個(gè)程序來(lái)執(zhí)行其操作。

解決這個(gè)問(wèn)題我們要明確操作文件的“三步曲”:第一步,對(duì)文件操作之前要將其打開(kāi);第二步,處理其數(shù)據(jù);第三步,數(shù)據(jù)處理完后將文件關(guān)閉。針對(duì)當(dāng)前任務(wù)的第一步就是明確原文件及目標(biāo)文件并將兩者打開(kāi),再將原文件信息讀出,把讀出的信息寫(xiě)入目標(biāo)文件中,然后關(guān)閉原文件與目標(biāo)文件。通過(guò)這幾步,我們已明確了該問(wèn)題的設(shè)計(jì)思路。分析11.1磁盤(pán)文件信息復(fù)制設(shè)計(jì)

圍繞文件操作的“三步曲”,我們可以用printf()函數(shù)進(jìn)行文件名的輸入提示,用scanf()函數(shù)將文件名輸入。使用fopen()函數(shù)打開(kāi)兩個(gè)文件時(shí)判斷這兩個(gè)文件是否能正常打開(kāi),如不能打開(kāi)則輸出提示。用fgetc()函數(shù)讀出原文件信息。用feof()函數(shù)判斷原文件信息是否讀完。用fputc()函數(shù)把讀出的信息寫(xiě)入目標(biāo)文件中。最后用fclose()關(guān)閉原文件與目標(biāo)文件。11.1磁盤(pán)文件信息復(fù)制實(shí)現(xiàn)11.1

磁盤(pán)文件信息復(fù)制#include"stdio.h"main(){FILE*infp,*outfp;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((infp=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((outfp=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(infp))fputc(fgetc(infp),outfp);fclose(infp);fclose(outfp);}其程序運(yùn)行情況如下:

Entertheinfilename:wj1.c(輸入原有磁盤(pán)文件名)Entertheoutfilename:wj2.c(輸入新復(fù)制的磁盤(pán)文件名)11.1磁盤(pán)文件信息復(fù)制11.2文件類(lèi)型指針相關(guān)概述C語(yǔ)言在使用文件時(shí),系統(tǒng)會(huì)在內(nèi)存中為每一個(gè)文件開(kāi)辟一個(gè)區(qū)域,用來(lái)存放文件的有關(guān)信息(如文件的名字、文件狀態(tài)以及文件當(dāng)前的位置等)。這些信息是保存在一個(gè)結(jié)構(gòu)體變量中的。該結(jié)構(gòu)體類(lèi)型是由系統(tǒng)定義的,取名為FILE。11.2文件類(lèi)型指針TurboC在stdio.h文件中有以下的文件類(lèi)型聲明:

typedef

struct{shortlevel; /*緩沖區(qū)“滿(mǎn)”或“空”的程度*/unsignedflags; /*文件狀態(tài)標(biāo)志*/charfd;

/*文件描述符*/unsignedcharhold; /*如無(wú)緩沖區(qū)不讀取字符*/shortbsize;

/*緩沖區(qū)的大小*/unsignedchar*buffer; /*數(shù)據(jù)緩沖區(qū)的位置*/unsignedchar*curp; /*指針,當(dāng)前的指向*/unsignedistemp; /*臨時(shí)文件,指示器*/shorttoken; /*用于有效性檢查*/}FILE;

有了結(jié)構(gòu)體FILE類(lèi)型之后,可以用它來(lái)定義若干個(gè)FILE類(lèi)型的變量,以便存放若干個(gè)文件的信息。例如,可以定義以下FILE類(lèi)型的數(shù)組。

FILE

f[3];

定義了一個(gè)結(jié)構(gòu)體數(shù)組f,它有3個(gè)元素,可以用來(lái)存放3個(gè)文件的信息??梢远x文件型指針變量。如:

FILE*fp1,*fp2;

11.2文件類(lèi)型指針11.3文件的基本操作文件的打開(kāi)C語(yǔ)言在頭文件stdio.h中提供了標(biāo)準(zhǔn)輸入輸出函數(shù)庫(kù),用fopen()函數(shù)來(lái)實(shí)現(xiàn)打開(kāi)文件。fopen()函數(shù)的調(diào)用方式通常為

FILE

*fp;fp=fopen(“文件名”,“文件操作方式”);11.3文件的基本操作注意對(duì)于文件名的使用,應(yīng)注意以下幾個(gè)方面:使用文件名時(shí),必須對(duì)其用雙引號(hào)括起來(lái),如果使用的是字符數(shù)組(或字符指針),則不使用雙引號(hào)。如果在當(dāng)前目錄下使用一個(gè)文件,則可以不加路徑。如果使用的文件不在當(dāng)前目錄下,則有兩種情況:(1)如果不在當(dāng)前目錄的子目錄下使用某一個(gè)文件,則必須加上相對(duì)路徑。例如,在當(dāng)前目錄下有一個(gè)子目錄test,如果要以追加方式使用test目錄下的一個(gè)文件file0.txt,可以這樣使用:fp=fopen("test\\file0.txt","a");注意,test后面必須用“\\”,不能用“\”。(2)如果使用的文件在另外一個(gè)目錄下,此時(shí)必須使用絕對(duì)路徑,例如,在C盤(pán)下有一個(gè)目錄doc,如果要以只讀方式使用此目錄下的文件file1.txt,可以這樣使用:fp=fopen("c:\\doc\\file1.txt","r");或fp=fopen("c:/doc/file1.txt","r");11.3文件的基本操作文件的操作方式11.3文件的基本操作文件的關(guān)閉

所謂關(guān)閉文件,是指把(輸出)緩沖區(qū)的數(shù)據(jù)輸入到磁盤(pán)文件中,同時(shí)釋放文件指針變量(即使文件指針變量不再指向該文件)。此后,不能再通過(guò)該指針變量來(lái)訪(fǎng)問(wèn)該文件,除非再次打開(kāi),使該指針變量重新指向該文件。11.3文件的基本操作

intfclose(文件指針名)已打開(kāi)的文件指針函數(shù)功能:關(guān)閉文件指針指定的文件,釋放該文件的緩沖區(qū)、FILE類(lèi)型變量及文件指針。若文件關(guān)閉成功,則返回0;若文件關(guān)閉失敗,則返回非0值。文件的關(guān)閉11.3文件的基本操作文件的關(guān)閉關(guān)閉文件的作用有以下兩點(diǎn):1.使文件指針fp與文件脫離。2.刷新文件輸入輸出緩沖區(qū)。11.3文件的基本操作文件讀函數(shù)

fgetc()函數(shù)的作用是從“文件指針變量”所指向的文件(該文件必須是以讀或讀寫(xiě)方式打開(kāi)的)中,讀出一個(gè)字符,同時(shí)將讀寫(xiě)位置指針向前移動(dòng)1個(gè)字節(jié)(即指向下一個(gè)字符)。

fgetc()函數(shù)其調(diào)用形式為:ch=fgetc(fp);文件型指針變量字符變量11.3文件的基本操作文件讀函數(shù)注意:在對(duì)二進(jìn)制文件執(zhí)行讀入操作時(shí),必須使用函數(shù)feof()來(lái)判斷是否遇到文件尾。

feof()函數(shù)其調(diào)用形式為:

feof(文件指針變量);

如:feof(fp)指測(cè)試fp所指向的文件當(dāng)前狀態(tài)是否“文件結(jié)束”。如果是文件結(jié)束,函數(shù)feof(fp)的值為1(真),否則為0(假)。如果想順序讀入一個(gè)二進(jìn)制文件中的數(shù)據(jù),可以用while(!feof(fp)){i=fgetc(fp);}11.3文件的基本操作文件讀函數(shù)

fread()函數(shù)其調(diào)用形式為:

fread(buffer,size,count,fp);buffer:是一個(gè)指針,它是讀入數(shù)據(jù)的存放地址。size:要讀的字節(jié)數(shù)。count:要進(jìn)行讀多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng)。fp:文件型指針。11.3文件的基本操作文件讀函數(shù)

用fgetc()函數(shù)可以用來(lái)讀寫(xiě)文件中的一個(gè)字符,但是常常要求一次讀入一組數(shù)據(jù)(如,一個(gè)實(shí)數(shù)或一個(gè)結(jié)構(gòu)體變量的值)。

fread()函數(shù)

如果文件以二進(jìn)制形式打開(kāi),用fread()函數(shù)就可以讀寫(xiě)任何類(lèi)型的信息。如:fread(bf,4,3,fp);

其中bf是一個(gè)實(shí)型數(shù)組名。一個(gè)實(shí)型變量占4個(gè)字節(jié)。這個(gè)函數(shù)從fp所指向的文件讀入3次(每次4個(gè)字節(jié))數(shù)據(jù),存儲(chǔ)到數(shù)組bf中。11.3文件的基本操作文件讀函數(shù)

fscanf()函數(shù)fscanf()函數(shù)與scanf()函數(shù)作用相仿,都是格式化讀函數(shù)。只有一點(diǎn)不同:fscanf()函數(shù)的讀出對(duì)象不是終端而是磁盤(pán)文件。

一般調(diào)用方式為fscanf(文件指針,格式字符串,輸入列表);例如:

fscanf(fp,"%d,%f",&a,&b);11.3文件的基本操作文件讀函數(shù)

fgets()函數(shù)

fgets()函數(shù)的作用是從指定文件讀出(向內(nèi)存輸入)一個(gè)字符串。它的調(diào)用方式為:

fgets(接收輸入的字符型指針,輸入字符個(gè)數(shù),文件指針名);

如:

fgets(str,m,fp);11.3文件的基本操作文件寫(xiě)函數(shù)

fputc()函數(shù)其調(diào)用形式為:

fputc(ch,fp);文件型指針變量字符變量

其中ch是要寫(xiě)入文件的字符,它可以是一個(gè)字符常量,也可以是一個(gè)字符變量。fp是文件指針變量。fputc(ch,fp)函數(shù)的作用是將字符(ch的值)輸出到fp所指向的文件中去。fputc函數(shù)也帶回一個(gè)值:如果輸出成功,則返回值就是輸出的字符;如果輸出失敗,則返回一個(gè)EOF(-1)。11.3文件的基本操作文件讀函數(shù)

fwrite()函數(shù)其調(diào)用形式為:

fwrite(buffer,size,count,fp);buffer是一個(gè)指針,是要輸出數(shù)據(jù)的地址(以上指的是起始地址)size是要讀寫(xiě)的字節(jié)數(shù)。count是要進(jìn)行讀寫(xiě)多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng)。fp是文件型指針。11.3文件的基本操作文件讀函數(shù)

fwrite()函數(shù)

同fread()函數(shù)一樣,當(dāng)文件以二進(jìn)制形式打開(kāi),用fwrite()函數(shù)就可以讀寫(xiě)任何類(lèi)型的信息,如:fwrite(bf,4,3,fp);

假設(shè)bf是一個(gè)實(shí)型數(shù)組名。一個(gè)實(shí)型變量占4個(gè)字節(jié)。那么這個(gè)fwrite()函數(shù)向fp所指向的文件寫(xiě)入3次(每次4個(gè)字節(jié))數(shù)據(jù),存儲(chǔ)到數(shù)組bf中。11.3文件的基本操作文件讀函數(shù)

fputc()函數(shù)fprintf()函數(shù)與printf()函數(shù)作用相仿,都是格式化讀寫(xiě)函數(shù)。只有一點(diǎn)不同:fprintf()函數(shù)的寫(xiě)入對(duì)象不是終端而是磁盤(pán)文件。它們的一般調(diào)用方式為

fprintf(文件指針,格式字符串,輸出表列);

例如:fprintf(fp,"%d,%f",a,b);

它的作用是把“輸入列表”所列出的變量值如a,b按“格式字符串”里給出的格式說(shuō)明(“%”開(kāi)頭)如"%d,%f",寫(xiě)入到fp所指磁盤(pán)文件(已打開(kāi))中。在該函數(shù)得到正確執(zhí)行后,返回從文件中寫(xiě)入的數(shù)值個(gè)數(shù),否則返回EOF(-1)。11.3文件的基本操作文件讀函數(shù)

fprintf()函數(shù)fprintf()函數(shù)與printf()函數(shù)作用相仿,都是格式化讀寫(xiě)函數(shù)。只有一點(diǎn)不同:fprintf()函數(shù)的寫(xiě)入對(duì)象不是終端而是磁盤(pán)文件。它們的一般調(diào)用方式為

fprintf(文件指針,格式字符串,輸出表列);

例如:fprintf(fp,"%d,%f",a,b);

它的作用是把“輸入列表”所列出的變量值如a,b按“格式字符串”里給出的格式說(shuō)明(“%”開(kāi)頭)如"%d,%f",寫(xiě)入到fp所指磁盤(pán)文件(已打開(kāi))中。在該函數(shù)得到正確執(zhí)行后,返回從文件中寫(xiě)入的數(shù)值個(gè)數(shù),否則返回EOF(-1)。11.3文件的基本操作文件讀函數(shù)

fputs()函數(shù)fputs()函數(shù)的作用是向指定的文件寫(xiě)入(從內(nèi)存輸出)一個(gè)字符串。其調(diào)用方式為:fputs(要寫(xiě)入的字符串,文件名);

如:fputs("Wuhan",fp);

把字符串“Wuhan”寫(xiě)入到fp指向的文件。fputs()函數(shù)中第一個(gè)參數(shù)可以是字符串常量、字符數(shù)組名或字符型指針。字符串末尾的“\0”不輸出。若輸出成功,函數(shù)值為0;失敗時(shí),為EOF。11.4文件的定位的函數(shù)

文件中有一個(gè)讀寫(xiě)位置指針,指向當(dāng)前的讀寫(xiě)位置。每次讀寫(xiě)1個(gè)(或1組)數(shù)據(jù)后,系統(tǒng)自動(dòng)將位置指針移動(dòng)指向下一個(gè)讀寫(xiě)位置上。如果想改變這樣的規(guī)律,強(qiáng)制使位置指針指向其他指定的位置,可以用有關(guān)函數(shù)。相關(guān)概述11.4文件的定位的函數(shù)rewind()函數(shù)rewind函數(shù)的作用是使位置指針重新返回文件的開(kāi)頭。此函數(shù)沒(méi)有返回值。實(shí)例分析例11-10有一個(gè)磁盤(pán)文件,第一次將它的內(nèi)容顯示在屏幕上,第二次把它復(fù)制到另一文件中。#include"stdio.h"main(){FILE*fp1,*fp2;if((fp1=fopen("student0.txt","r"))==NULL){printf("cannotopenfile\n");exit(0); }if((fp2=fopen("student1.txt","w"))==NULL){ printf("cannotopenfile\n");exit(0); }while(!feof(fp1))putchar(getc(fp1));rewind(fp1);while(!feof(fp1))putc(getc(fp1),fp2);fclose(fp1);fclose(fp2);printf("\n");}11.4文件的定位的函數(shù)fseek()函數(shù)

對(duì)流式文件可以進(jìn)行順序讀寫(xiě),也可以進(jìn)行隨機(jī)讀寫(xiě)。關(guān)鍵在于控制文件的位置指針,如果位置指針是按字節(jié)位置順序移動(dòng)的,就是順序讀寫(xiě)。如果能將位置指針按需要移動(dòng)到任意位置,就可以實(shí)現(xiàn)隨機(jī)讀寫(xiě)。所謂隨機(jī)讀寫(xiě),是指讀寫(xiě)完上一個(gè)字符(字節(jié))后,并不一定要讀寫(xiě)其后續(xù)的字符(字節(jié)),而可以讀寫(xiě)文件中任意所需的字符(字節(jié))。11.4文件的定位的函數(shù)fseek()函數(shù)

用fseek函數(shù)可以實(shí)現(xiàn)改變文件的位置指針。fseek函數(shù)的調(diào)用形式為:fseek

(文件類(lèi)型指針,位移量,起始點(diǎn))如:fseek(fp,100L,0);功能:把位置指針移動(dòng)到距離文件頭100字節(jié)處。實(shí)例分析例11-11在磁盤(pán)文件上存有8個(gè)學(xué)生的數(shù)據(jù)。要求將第2、4、6、8個(gè)學(xué)生的數(shù)據(jù)輸入計(jì)算機(jī),并在屏幕上顯示出來(lái)。#include"stdio.h"structstudent_data{charname[8];intnumber;intage;charsex;}stu[8];main(){inti;FILE*fp;if((fp=fopen("student.txt","rb"))==NULL){printf("cannotopenfile\n");exit(0);}11.4文件的定位的函數(shù)11.4文件的定位的函數(shù)for(i=1;i<8;+=2){fseek(fp,i*sizeof(structstudent_data),0);fread(&stu[i],sizeof(structstudent_data),1,fp);

printf("%s%d%d%c\n",stu[i].name,stu[i].number,stu[i].age,stu[i].sex);

}fclose(fp);}11.5文件出錯(cuò)檢測(cè)函數(shù)ferror()函數(shù)

在調(diào)用各種輸入輸出函數(shù)(如putc、getc、fread、fwrite等)時(shí),如果出現(xiàn)錯(cuò)誤,除了函數(shù)返回值有所反映外,還可以用ferror函數(shù)檢查。

它的一般調(diào)用形式為

ferror(fp);

其中參數(shù)文件指針fp為被測(cè)試文件,ferror()函數(shù)用來(lái)對(duì)該文件所做的最近一次操作進(jìn)行正確性測(cè)試。如果ferror返回值為0(假),表示未出錯(cuò)。如果返回一個(gè)非0值,表示出錯(cuò)。在執(zhí)行fopen函數(shù)時(shí),ferror函數(shù)的初始值自動(dòng)置為0。11.5文件出錯(cuò)檢測(cè)函數(shù)實(shí)例分析例11-12編寫(xiě)一個(gè)程序,接收從鍵盤(pán)輸入的一個(gè)字符串、一個(gè)實(shí)數(shù)、一個(gè)整數(shù),隨即將其存入“d:/turboc2/liu.data”文件中。

程序中文件操作需錯(cuò)誤碼測(cè)試。#include"stdio.h"voiderrp(FILE*fp){if(ferror(fp)!=0){printf("fileoperatebedefeated!\n");exit(0);}elsereturn;}11.5文件出錯(cuò)檢測(cè)函數(shù)main(){FILE*fp;

charstr[8];floatx;inti;fp=fopen("d:/turboc2/liu.data","w");errp(fp);/*調(diào)用函數(shù)errp(),進(jìn)行錯(cuò)誤測(cè)試。*/printf("Pleaseenterastring,float,integer:\n");

fscanf(stdin,"%s%f%d",str,&x,&i);/*從標(biāo)準(zhǔn)輸入文件stdin(鍵盤(pán))輸入3個(gè)數(shù)據(jù)。*/errp(fp);/*調(diào)用函數(shù)errp(),進(jìn)行錯(cuò)誤測(cè)試。*/fprintf(fp,"%s%f%d",str,x,i);errp(fp);/*調(diào)用函數(shù)errp(),進(jìn)行錯(cuò)誤測(cè)試。*/fclose(fp;}11.5文件出錯(cuò)檢測(cè)函數(shù)clearerr()函數(shù)

它的作用是使文件錯(cuò)誤標(biāo)志和文件結(jié)束標(biāo)志置為0。假設(shè)在調(diào)用一個(gè)輸入輸出函數(shù)時(shí)出現(xiàn)錯(cuò)誤,ferror函數(shù)值為一個(gè)非0值。在調(diào)用clearerr(fp)后,ferror(fp)的值變成0。

只要出現(xiàn)錯(cuò)誤標(biāo)志,就一直保留,直到對(duì)同一文件調(diào)用clearerr函數(shù)或rewind函數(shù),或任何其他一個(gè)輸入輸出函數(shù)。11.6小型案例問(wèn)題

檢查命令行所列出的文件test.txt中每一行的左括號(hào)“(”及右括號(hào)“)”是否匹配,如有錯(cuò)誤,將錯(cuò)誤所在行數(shù)寫(xiě)入文件result.txt中。

對(duì)此問(wèn)題我們要考慮的第一步,還是遵循文件操作的“三步曲”,首先打開(kāi)兩文件test.txt及result.txt;再次就是對(duì)被測(cè)文件test.txt中的左右括號(hào),逐行計(jì)數(shù)比較,直到讀完該文件為止,將左右括號(hào)不對(duì)稱(chēng)的行數(shù)數(shù)據(jù)寫(xiě)入文件result.txt中(即對(duì)文件讀寫(xiě));然后關(guān)閉兩個(gè)文件分析11.6小型案例實(shí)現(xiàn)#include"stdio.h"main(argc,argv)intargc;char*argv[];{FILE*test,*result;inti,j,line,sign,x;charch;if(argc<2){printf("notice:youshouldenterfilename!\n");/*提示輸入文件名。*/printf("usage:executablefiletestfile\n");/*提示輸入文件名的正確格式。*/exit(0);}11.6小型案例if((test=fopen(argv[1],"r"))==NULL)/*打開(kāi)文件test.txt并判斷文件打開(kāi)是否正常。*/{printf("cannotopentestfile\n");/*如果打開(kāi)文件出錯(cuò),顯示打開(kāi)出錯(cuò)。*/exit(0);}if((result=fopen("result.txt","w"))==NULL)/*打開(kāi)文件result.txt并判斷文件打開(kāi)是否正常。*/{printf("cannotopenresultfile\n");/*如果打開(kāi)文件出錯(cuò),顯示打開(kāi)出錯(cuò)。*/exit(0);}line=0;/*預(yù)置行數(shù)值。*/sign=1;/*預(yù)置左右括號(hào)對(duì)稱(chēng)標(biāo)注值。*/11.6小型案例while(!feof(test)){line++;i=0;j=0;ch=fgetc(test);while((!feof(test))&&(ch!='\n')) /*計(jì)算一行中的左右括號(hào)數(shù)。*/{if(ch==40)i++;if(ch==41)j++;ch=fgetc(test);}11.6小型案例if(i!=j)/*判斷一行中的左右括號(hào)數(shù)是否相等。*/{sign=0;ch=

溫馨提示

  • 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)論