《C語言程序設計》第10章 文件寫字字帖_第1頁
《C語言程序設計》第10章 文件寫字字帖_第2頁
《C語言程序設計》第10章 文件寫字字帖_第3頁
《C語言程序設計》第10章 文件寫字字帖_第4頁
《C語言程序設計》第10章 文件寫字字帖_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第10章文件10.1文件指針10.2指針變量10.1文件指針10.1.1文件類型指針

10.1.2文本文件和二進制文件10.1.3文件的打開與關(guān)閉10.1.1文件類型指針在程序想要使用文件的時候,首先必須要能夠找到這個文件,這就需要文件類型的指針變量。可以定義一個文件類型的指針變量,然后使這個指針變量指向某一個文件的結(jié)構(gòu)體變量,從而通過該結(jié)構(gòu)體變量中的文件信息訪問該文件。也就是說,通過文件指針變量能夠找到與它相關(guān)的文件。例如:FILE*fp;在這里,fp是一個指向FILE類型結(jié)構(gòu)體變量的指針變量,當文件打開時,系統(tǒng)自動建立文件結(jié)構(gòu)體,并把指向它的指針返回來,程序通過這個指針獲得文件信息,訪問文件;文件關(guān)閉后,它的文件結(jié)構(gòu)體被釋放。如果有n個文件,一般應定義n個指向FILE類型結(jié)構(gòu)體的指針變量,將它們分別指向n個文件,即指向存放該文件信息的結(jié)構(gòu)體變量,以實現(xiàn)對文件的訪問。例10.1以下程序打開新文件f.txt,并調(diào)用字符輸出函數(shù)將a數(shù)組中的字符寫入其中。#include<stdio.h>main(){

*fp; chara[5]={'1','2','3','4','5'},i;

fp=fopen("f.txt","w");

for(i=0;i<5;i++)fputc(a[i],fp);

fclose(fp);}分析:此題下劃線處為填空位置,在這里應該首先定義一個文件類型則指針變量fp,所以答案是FILE。C程序通過操作系統(tǒng)訪問磁盤上的文件如圖10.3所示。10.310.1.1文件類型指針返回10.1.2文本文件和二進制文件C語言把文件看作是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進制文件。ASCII文件又稱為文本文件,它的每一個字節(jié)存放一個ASCII代碼,代表一個字符;而二進制文件則是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。例如整數(shù)12345,假設其為int類型,則其在內(nèi)存中表示為“0011000000111001”,只占兩個字節(jié),共十六位,那么12345的二進制文件也為“0011000000111001”。而當把這個數(shù)字輸出到終端屏幕或者打印時,系統(tǒng)會自動將其翻譯成“12345”五個字符,便于人們讀它,表示為“0011000100110010001100110011010000110101”,其中每個字符占一個字節(jié),五個字節(jié)共40位,這種數(shù)據(jù)組成的文件稱為文本文件。如圖10.4所示。圖10.412345的二進制文件表示和文本文件表示10.1.2文本文件和二進制文件任何文本文件都可以在終端上顯示,而二進制文件卻不能,當然也不能打印,二進制文件只能由計算機去讀。用ASCII文件輸出時,其與字符是一一對應的,一個字節(jié)代表一個字符,因而便于對字符進行逐個處理,便于輸出字符,但一般占存儲空間較多,并且因為要進行二進制形式和ASCII碼之間的轉(zhuǎn)換,需要花費轉(zhuǎn)換的時間;而二進制文件所有字節(jié)存儲的都是二進制數(shù),以二進制文件形式輸出數(shù)據(jù),可以節(jié)省外存空間和轉(zhuǎn)換時間。由前所知,一個C語言文件是一個字節(jié)流或者二進制流,它把數(shù)據(jù)看作是一連串的字符(字節(jié)),在C語言中對文件的存取是以字符(字節(jié))為單位的,輸入輸出的數(shù)據(jù)流的開始和結(jié)束僅受程序控制,我們把這種文件又稱為流式文件。C語言允許對文件存取一個字符,這就增加了處理的靈活性。10.1.2文本文件和二進制文件例10.2下列關(guān)于C語言文件的敘述中正確的是

A)文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件

B)文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件

C)文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件

D)文件由字符序列組成,其類型只能是文本文件分析:參照本節(jié)對文件定義,根據(jù)數(shù)據(jù)的組織形式,文件可分為ASCII文件和二進制文件,所以正確答案是C。返回10.1.3文件的打開與關(guān)閉文件使用的方式是首先打開文件,然后進行文件的讀/寫操作,文件使用完畢以后要關(guān)閉文件。文件的打開使用標準輸入輸出函數(shù)庫中的fopen()函數(shù)。fopen()函數(shù)功能是按指定方式打開文件。如果文件正常打開,其返回值為指向文件結(jié)構(gòu)體的指針;如果文件打開失敗,其返回值為NULL。fopen()函數(shù)的原型如下:格式:FILE*fopen(char*name,char*mode)其中*name為要打開的文件名,*mode為使用文件的方式(見表10-1)。fopen函數(shù)的調(diào)用方式通常為:FILE*fp;fp=fopen(“test.c”,“w”);這段代碼表示打開文件名為“test”的文件,使用文件方式為“只寫”(w代表write,即只寫),fopen函數(shù)帶回指向test文件的指針并賦給fp,這樣fp就和test相聯(lián)系了,或者說,fp就指向了test文件。判斷文件是否打開,要看fopen函數(shù)返回給fp的值是否為NULL,如果為NULL,則說明文件沒有打開。10.1.3文件的打開與關(guān)閉例10.3以下程序用來判斷指定文件是否能正常打開#include<stdio.h>main(){ FILE*fp; if(((fp=fopen("test.txt","r"))==_____)) printf("未能打開文件!\n"); else printf("文件打開成功!\n");}分析:本題判斷文件是否打開,判斷文件是否打開,要看fopen函數(shù)返回給fp的值是否為NULL,如果為NULL,則說明文件沒有打開。所以正確答案為NULL。通過前邊所述可以看出,打開一個文件涉及到3個信息:①需要打開的文件名,也就是準備訪問的文件的名字;②使用文件的方式(如本例使用文件的方式為“w”);③讓哪一個指針變量指向被打開的文件。10.1.3文件的打開與關(guān)閉例10.4設fp已定義,執(zhí)行語句fp=fopen(“file”,“w”);后,以下針對文本文件file操作敘述的選項中正確的是A)寫操作結(jié)束后可以從頭開始讀B)只能寫不能讀C)可以在原有內(nèi)容后追加寫D)可以隨意讀和寫分析:參照表10-1可知,正確答案為B。在使用完一個文件后,應當將其關(guān)閉,以防它再被誤用。所謂關(guān)閉文件,就是使文件的指針變量不再指向該文件,此后不能再通過該指針對原來與其相聯(lián)系的文件進行讀寫操作,除非再次打開。文件的關(guān)閉使用標準輸入輸出函數(shù)庫中的fclose()函數(shù)。fclose()函數(shù)的原型如下所示。格式:intfclose(FILE*fp)例如:fclose(fp);前面我們曾把用fopen函數(shù)打開文件所帶回的指針賦值給了fp,現(xiàn)在通過fclose函數(shù)將fp不再指向該文件,即將文件關(guān)閉了。fclose函數(shù)帶回一個整形數(shù)據(jù)的返回值,如果順利地關(guān)閉了文件,則返回值為0;否則返回EOF(-1)。EOF(ENDOFFILE)是在stdio.h文件中定義的符號常量,值為-1。10.2指針變量10.2.1調(diào)用fgetc和fputc函數(shù)進行輸入和輸出10.2.2fscanf和fprintf函數(shù)的應用10.2.3fgets和fputs函數(shù)的應用10.2.4fread和fwrite函數(shù)的應用10.2.5文件定位函數(shù)(rewind和fseek函數(shù)的應用)10.2.6判斷文件結(jié)束函數(shù)feof10.2.1調(diào)用fgetc和fputc函數(shù)進行輸入和輸出fgetc函數(shù)是從指定的文件讀入一個字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式如下所示。格式:ch=fgetc(fp);fp為指向文件的文件型指針變量,ch為字符變量。fgetc函數(shù)帶回一個字符,賦值給ch。如果在執(zhí)行fgetc函數(shù)讀字符時遇到文件結(jié)束符,函數(shù)返回一個文件結(jié)束標志EOF(-1)。在文件內(nèi)部有一個位置指針。用來指向文件的當前讀寫字節(jié)。在文件打開時,該指針總是指向文件的第一個字節(jié)。使用fgetc函數(shù)后,該位置指針將向后移動一個字節(jié)。因此可連續(xù)多次使用fgetc函數(shù),讀取多個字符。應注意文件指針和文件內(nèi)部的位置指針不是一回事。文件指針是指向整個文件的,須在程序中定義說明,只要不重新賦值,文件指針的值是不變的。10.2.1調(diào)用fgetc和fputc函數(shù)進行輸入和輸出例10.5讀入文件abc.c,在屏幕上輸出。#include<stdio.h>main(){ FILE*fp; charch; if((fp=fopen("abc.c","rt"))==NULL) { printf("文件打開失??!"); getch(); exit(1); } ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } fclose(fp);}分析:本例程序的功能是從文件中逐個讀取字符,在屏幕上顯示。程序定義了文件指針fp,以讀文本文件方式打開文件“abc.c”,并使fp指向該文件。如打開文件出錯,給出提示并退出程序。程序第12行先讀出一個字符,然后進入循環(huán),只要讀出的字符不是文件結(jié)束標志EOF,就把該字符顯示在屏幕上,再讀入下一字符。每讀一次,文件內(nèi)部的位置指針向后移動一個字符,文件結(jié)束時,該指針指向EOF。當執(zhí)行本程序時將顯示整個文件。10.2.1調(diào)用fgetc和fputc函數(shù)進行輸入和輸出fputc函數(shù)是把一個字符寫到磁盤文件上去。其一般調(diào)用形式如下所示。格式:fputc(ch,fp);其中ch是要輸出的字符,它可以是一個字符常量,也可以是一個字符變量。fp是文件指針變量。fputc(ch,fp)函數(shù)的作用是將字符(ch的值)輸出到fp所指向的文件中去。被寫入的文件可以用、寫、讀寫,追加方式打開,用寫或讀寫方式打開一個已存在的文件時將清除原有的文件內(nèi)容,寫入字符從文件首開始。如需保留原有文件內(nèi)容,希望寫入的字符以文件末開始存放,必須以追加方式打開文件。被寫入的文件若不存在,則創(chuàng)建該文件。每寫入一個字符,文件內(nèi)部位置指針向后移動一個字節(jié)。fputc函數(shù)有一個返回值,如寫入成功則返回寫入的字符,否則返回一個EOF??捎么藖砼袛鄬懭胧欠癯晒?0.2.1調(diào)用fgetc和fputc函數(shù)進行輸入和輸出例10.6從鍵盤輸入一行字符,寫入一個文件,再把該文件內(nèi)容讀出顯示在屏幕上#include<stdio.h>main(){ FILE*fp; charch; if((fp=fopen("abc","wt+"))==NULL) { printf("文件打開失??!"); getch(); exit(1); } printf("inputastring:\n"); ch=getchar(); while(ch!='\n') { fputc(ch,fp); ch=getchar(); } rewind(fp); ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } printf("\n"); fclose(fp);}分析:程序中第6行以讀寫文本文件方式打開文件abc。程序第13行從鍵盤讀入一個字符后進入循環(huán),當讀入字符不為回車符時,則把該字符寫入文件之中,然后繼續(xù)從鍵盤讀入下一字符。每輸入一個字符,文件內(nèi)部位置指針向后移動一個字節(jié)。寫入完畢,該指針已指向文件末。如要把文件從頭讀出,須把指針移向文件頭,程序第19行rewind函數(shù)的作用是把fp所指文件的內(nèi)部位置指針移到文件頭返回10.2.2fscanf和fprintf函數(shù)的應用fscanf函數(shù)、fprintf函數(shù)的功能與scanf函數(shù)和printf函數(shù)類似,都是格式化讀寫函數(shù)。只不過fscanf函數(shù)和fprintf函數(shù)的讀寫對象不是終端,而是磁盤文件。(1)fprintf函數(shù)的一般調(diào)用方式如下所示。格式:intfprintf(FILE*fp,constchar*format[,argument,…])功能是根據(jù)格式字符串frmat把argument列表中的表達式值寫到fp所指向的文件中。注意格式說明符的個數(shù)必須與參數(shù)的個數(shù)相同。如果調(diào)用成功,則返回輸出字節(jié)數(shù),如果是調(diào)用失敗或者已到了文件尾端,則返回EOF。10.2.2fscanf和fprintf函數(shù)的應用例10.7有以下程序#include<stdio.h>main(){FILE*f;f=fopen("filea.txt","w");fprintf(f,"abc");fclose(f);}若文本文件filea.txt中原有內(nèi)容為:hello,則運行以上程序后,文件filea.txt的內(nèi)容為A)helloabcB)abcloC)abcD)abchello分析:程序中首先以只寫的方式打開了filea.txt文件,然后通過fprintf函數(shù)將字符串“abc”寫入文件filea.txt,由表10-1可知,文件filea.txt中的內(nèi)容將被重寫,所以雖然文件中原有內(nèi)容為hello,但寫入的abc覆蓋掉了原有內(nèi)容,所以答案應該是C。10.2.2fscanf和fprintf函數(shù)的應用fscanf函數(shù)的一般調(diào)用方式如下所示。格式:intfscanf(FILE*fp,constchar*format[,address,…])功能是根據(jù)format中的格式從fp指向的文件中讀取數(shù)據(jù)存入到相應的address指向的變量中。注意格式說明符和地址的個數(shù)必須與輸入字段的個數(shù)相同。如果調(diào)用成功,fscanf函數(shù)返回成功掃描、轉(zhuǎn)換和存儲的輸入字段的個數(shù),返回值不包括沒有被存儲的字段。當沒有字段被保存時,將返回0,如果遇到文件終止符,則返回EOF。10.2.2fscanf和fprintf函數(shù)的應用例10.8有以下程序#include<stdio.h>main(){ FILE*fp; intk,n,i,a[6]={1,2,3,4,5,6}; fp=fopen("d2.dat","w"); for(i=0;i<6;i++) fprintf(fp,"%d\n",a[i]); fclose(fp); fp=fopen("d2.dat","r"); for(i=0;i<3;i++) fscanf(fp,"%d%d",&k,&n); fclose(fp); printf("%d,%d\n",k,n);}程序運行后的輸出結(jié)果是A.1,2 B.3,4C.5,6 D.123,456分析:在此程序中,首先定義了一個數(shù)組a,其中初始化有1,2,3,4,5,6等6個數(shù)組元素。然后以只寫的方式打開了文件d2.dat,通過循環(huán)語句將數(shù)組a中的內(nèi)容寫入文件a2.dat,關(guān)閉文件d2.dat,此時文件中的內(nèi)容為1,2,3,4,5,6。再通過只讀的方式打開文件a2.dat,利用循環(huán)語句,將文件中的內(nèi)容讀入到變量k和n中,第一次循環(huán)是將文件中1讀入到k,2讀入到n,此時文件的位置指針指向了文件中的3;第二次循環(huán)是將文件中3讀入到k,4讀入到n,此時文件的位置指針指向了文件中的5;第三次循環(huán)是將文件中5讀入到k,6讀入到n,此時循環(huán)結(jié)束,關(guān)閉了文件。所以此時輸出k和n的值為“5,6”,正確答案為C。返回10.2.3fgets和fputs函數(shù)的應用fgets函數(shù)和fputs函數(shù)類似于以前介紹過的gets函數(shù)和puts函數(shù),其作用都是讀寫字符串。只不過fgets函數(shù)和fputs函數(shù)是以指定的文件作為讀寫對象。(1)讀字符串函數(shù)fgetsfgets函數(shù)的功能是從指定的文件中讀一個字符串到字符數(shù)組中,函數(shù)調(diào)用的形式如下所示。格式:char*fgets(char*s,intn,FILE*fp);例如:fgets(str,n,fp);n為要求得到的字符個數(shù),但只從fp指向的文件輸入n-1個字符,然后在最后加一個’\0’字符,因此得到的字符串共有n個字符,把它們放到字符數(shù)組str中。如果在讀完n-1個字符之前遇到換行符或者EOF,讀入即結(jié)束。fgets正常時返回讀取字符串的首地址;出錯或到了文件尾端,則返回NULL。10.2.3fgets和fputs函數(shù)的應用例10.9從string文件中讀入一個含10個字符的字符串#include<stdio.h>main(){FILE*fp;charstr[11];if((fp=fopen("d:\\jrzh\\example\\string","rt"))==NULL){printf("文件打開失?。?);getch();exit(1);}fgets(str,11,fp);printf("%s",str);fclose(fp);}分析:本例定義了一個字符數(shù)組str共11個字節(jié),在以讀文本文件方式打開文件string后,從中讀出10個字符送入str數(shù)組,在數(shù)組最后一個單元內(nèi)將加上'\0',然后在屏幕上顯示輸出str數(shù)組。輸出的十個字符正是例13.1程序的前十個字符10.2.3fgets和fputs函數(shù)的應用寫字符串函數(shù)fputsfputs函數(shù)的功能是向指定的文件寫入一個字符串,其調(diào)用形式如下所示。格式:intfputs(char*s,FILE*fp)

其中字符串可以是字符串常量,也可以是字符數(shù)組名或指針變量,字符串末尾’\0’不輸出,若fputs正常時則返回寫入的最后一個字符;如果出錯,則返回EOF。例如:fputs("abcd",fp);其意義是把字符串“abcd”寫入fp所指的文件之中。10.2.3fgets和fputs函數(shù)的應用例10.10在例10.5中建立的文件string中追加一個字符串。#include<stdio.h>main(){ FILE*fp; charch,st[20]; if((fp=fopen("string","at+"))==NULL) { printf("Cannotopenfilestrikeanykeyexit!"); getch(); exit(1); } printf("inputastring:"); scanf("%s",st); fputs(st,fp); rewind(fp); ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } printf(""); fclose(fp);}分析:本例要求在string文件末加寫字符串,因此,在程序第6行以追加讀寫文本文件的方式打開文件string。然后輸入字符串,并用fputs函數(shù)把該串寫入文件string。在程序15行用rewind函數(shù)把文件內(nèi)部位置指針移到文件首。再進入循環(huán)逐個顯示當前文件中的全部內(nèi)容。返回10.2.4fread和fwrite函數(shù)的應用用fgetc函數(shù)和fputc函數(shù)可以用來讀寫文件中的一個字符,但通常要求一次讀入一組數(shù)據(jù),fread函數(shù)和fwrite函數(shù)就可以用來讀寫一個數(shù)據(jù)塊。它們的一般調(diào)用形式如下所示。格式:size_tfread(void*buffer,size_tsize,size_tcount,FILE*fp)size_tfwrite(void*buffer,size_tsize,size_tcount,FILE*fp)其中:buffer:指向要輸入/輸出數(shù)據(jù)塊的首地址的指針;size:每個要讀/寫的數(shù)據(jù)塊的大?。ㄗ止?jié)數(shù));count:要讀/寫的數(shù)據(jù)塊的個數(shù);fp:要讀/寫的文件指針。如果fread函數(shù)或fwrite函數(shù)調(diào)用成功,則函數(shù)返回值為count的值,即輸入或輸出數(shù)據(jù)項的完整個數(shù);如果出錯或到文件尾端,則返回0

10.2.4fread和fwrite函數(shù)的應用例如:fread(f,4,2,fp);其中f是一個實型數(shù)組名。一個實型變量占4個字節(jié)。這個函數(shù)從fp所指向的文件讀入2個4個字節(jié)的數(shù)據(jù),存儲到數(shù)組f中。如果有以下的一個結(jié)構(gòu)體類型:structstudent{intnum;charname[20];charsex;intage;chartelephone[3];}stud[10];結(jié)構(gòu)體數(shù)組stud有10個數(shù)組元素,每一個元素用來存放一個學生的數(shù)據(jù)(包括學號,姓名,性別,年齡,電話)。假設學生的數(shù)據(jù)已存放在磁盤文件中,可以用下面的for語句和fread函數(shù)讀入10個學生的數(shù)據(jù):for(i=0;i<10;i++)fread(&stud[i],sizeof(structstudent),1,fp);10.2.4fread和fwrite函數(shù)的應用例10.11以下程序運行后的輸出結(jié)果是_____#include<stdio.h>main(){ FILE*fp; intx[6]={1,2,3,4,5,6},i; fp=fopen("test.dat","wb"); fwrite(x,sizeof(int),3,fp); rewind(fp); fread(x,sizeof(int),3,fp); for(i=0;i<6;i++) printf("%d",x[i]); printf("\n"); fclose(fp);}分析:在程序中首先定義了一個數(shù)組x,然后以只寫的方式打開一個二進制文件test.dat,將x數(shù)組中的數(shù)據(jù)寫入6個字節(jié)(每個int型數(shù)據(jù)為2個字節(jié),3說明是6個字節(jié))到文件中,然后把文件內(nèi)部位置指針移到文件初始位置,在文件中讀出相同大小的數(shù)據(jù),最后使用循環(huán)語句,將x中數(shù)據(jù)輸出到屏幕。所以本題的正確答案為123456。返回10.2.5文件定位函數(shù)(rewind和fseek函數(shù)的應用)在文件內(nèi)部,存在一個位置指針,這個指針指向文件當前讀寫的位置。一般情況下,指向文件的指針指向文件的起始部分,而文件的位置指針則指向當前讀寫的位置。如果順序讀寫一個文件,每次讀寫完一個字符后,位置指針自動指向下一個字符。如果想要將位置指針指向其它指定的字符,即使位置指針指向其他指定的位置,則可以使用文件的定位函數(shù)強制位置指針指向指定內(nèi)容。(1)rewind函數(shù)的作用是使位置指針重新返回到文件的起始位置,清除文件結(jié)束標志和出錯標志,rewind函數(shù)沒有返回值。格式:voidrewind(FILE*fp)10.2.5文件定位函數(shù)(rewind和fseek函數(shù)的應用)例10.12#include<stdio.h>main(){ FILE*fp; charstr[10]; fp=fopen("myfile.dat","w"); fputs("abc",fp); fclose(fp); fp=fopen("myfile.dat","a+"); fprintf(fp,"%d",28); rewind(fp); fscanf(fp,"%s",str); puts(str); fclose(fp);}程序運行后的輸出結(jié)果是A)abc

B)28c

C)abc28

D)因類型不一致而出錯。分析:程序中首先定了一個字符數(shù)組str,然后以只寫的方式打開了文件myfile.dat,向文件中輸入字符串“abc”,然后關(guān)閉文件,再以追加的方式打開文件myfile.dat,向文件中輸入28,此時文件中myfile.dat的內(nèi)容為abc28,然后執(zhí)行rewind函數(shù),使文件的位置指針重新定位于文件的起始位置,將文件中的內(nèi)容寫入

溫馨提示

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

評論

0/150

提交評論