c12文件待修改市公開課一等獎省賽課獲獎課件_第1頁
c12文件待修改市公開課一等獎省賽課獲獎課件_第2頁
c12文件待修改市公開課一等獎省賽課獲獎課件_第3頁
c12文件待修改市公開課一等獎省賽課獲獎課件_第4頁
c12文件待修改市公開課一等獎省賽課獲獎課件_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C

語言程序設計第10章文件懷化職業(yè)技術學院計算機系胡煒制作1c12文件待修改第1頁第10章文件10.1文件概念10.2文本文件讀寫10.3二進制文件讀寫/10/102c12文件待修改第2頁文件:存放在外部存放介質上相關數據集合。 比如:程序文件中保留著程序,數據文件中保留著數據。 *.C

C語言源程序 文本文件

*.OBJ

目標文件 二進制文件

*.EXE

可執(zhí)行文件 二進制文件文件存放特征

文件是一個有序數據序列。C語言把文件作為一個字符(字節(jié))序列處理,對文件存取是以字符(字節(jié))為單位進行。

10.1文件概述10.1.1文件和文件指針1.什么是文件

/10/103c12文件待修改第3頁設備文件 在C語言中,“文件”概念被深入擴大,把每臺與主機相連輸入輸出設備都看作是一個文件。即把實際物理設備抽象為邏輯文件,它們被稱為設備文件。對外部設備輸入輸出就是對設備文件讀寫。

10.1文件概述10.1.1文件和文件指針1.什么是文件

/10/104c12文件待修改第4頁按文件存放數據形式ASCII文件(或稱文本文件)

ASCII碼文件中每個字節(jié)存放一個ASCII代碼,代表一個字符,此種存放形式便于輸出顯示,在DOS操作系統(tǒng)下能夠直接閱讀。二進制文件

二進制文件中數據是按照在內存中二進制存放格式存放,此種存放形式節(jié)約存放單元。二進制文件在DOS操作系統(tǒng)下不能直接閱讀。10.1文件概述10.1.1文件和文件指針2.文件種類

/10/105c12文件待修改第5頁比如將整數1949分別存放在這兩種數據文件中。ASCII文件:ASCII碼二進制文件:補碼占用4個字節(jié)占用2個字節(jié)10.1文件概述10.1.1文件和文件指針2.文件種類

00110001001110010011010000111001'1''9''4''9'0000011110011101/10/106c12文件待修改第6頁按照對文件處理方式緩沖文件

利用緩沖文件系統(tǒng)處理文件稱為緩沖文件。系統(tǒng)處理方法是在內存中為每個正在使用緩沖文件開辟一個緩沖區(qū),其大小是512個字節(jié)。對文件讀寫數據都經過緩沖區(qū)進行。非緩沖文件利用非緩沖文件系統(tǒng)處理文件稱為非緩沖文件。系統(tǒng)處理非緩沖文件時,不為文件開辟緩沖區(qū),需要程序員自行設計并管理緩沖區(qū)。83年以后ANSIC標準中取消了非緩沖文件

系統(tǒng),對文本文件和二進制文件均采取緩沖文

件系統(tǒng)進行處理。10.1文件概述10.1.1文件和文件指針2.文件種類

/10/107c12文件待修改第7頁

系統(tǒng)對文件處理過程就是對文件進行輸入/輸出操作過程。從文件讀數據時,先一次性從磁盤文件中讀取一批數據到緩沖區(qū),然后再從緩沖區(qū)逐一將數據送入變量。向文件寫數據時,也是先將變量中數據送到緩沖區(qū),待緩沖區(qū)裝滿后,再一起存到磁盤文件中。10.1文件概述10.1.1文件和文件指針3.緩沖文件和文件指針

磁盤文件

輸出

輸入圖10.2系統(tǒng)對緩沖文件處理

輸入輸出程序區(qū)數據區(qū)文件

緩沖區(qū)外存內存/10/108c12文件待修改第8頁10.1文件概述10.1.1文件和文件指針3.緩沖文件和文件指針

文件類型指針

在緩沖文件系統(tǒng)中,對每個正在使用文件都自動分配一個FILE類型結構體變量,用于存放文件相關信息,如文件號、文件狀態(tài)、緩沖區(qū)地址和大小等。

FILE類型是系統(tǒng)定義,包含在stdio.h頭文件中 在C語言中,不論對磁盤文件還是設備文件讀/寫都要經過FILE類型結構體變量進行。所以對于每個使用中磁盤文件必須先定義一個FILE類型文件指針變量并指向此變量。

FILE

*文件指針變量名;typedefstruct{shortlevel;/*fill/emptylevelofbuffer*/unsignedflags;/*Filestatusflags*/charfd;/*Filedescriptor*/unsignedcharhold;/*Ungetccharifnobuffer*/shortbsize;/*Buffersize*/unsignedchar*buffer;/*Datatransferbuffer*/unsignedchar*curp;/*Currentactivepointer*/unsignedistemp;/*Temporaryfileindicator*/shorttoken;/*Usedforvaliditychecking*/}FILE;/*ThisistheFILEobject*//10/109c12文件待修改第9頁

標準文件是外部設備中三個特殊設備文件。它們文件指針是系統(tǒng)定義,并由系統(tǒng)自動打開和關閉。這三個標準文件分別是:①標準輸入文件,文件指針為stdin,系統(tǒng)指定為鍵盤。②標準輸出文件,文件指針為stdout,系統(tǒng)指定為顯示器。③標準錯誤輸出文件,文件指針為stderr,系統(tǒng)指定為顯示器,輸犯錯誤信息。10.1文件概述10.1.1文件和文件指針4.標準文件

/10/1010c12文件待修改第10頁10.1文件概述10.1.2文件打開與關閉操作文件普通步驟打開文件

讀寫文件

關閉文件打開文件:建立用戶程序與文件聯絡,為文件分

配一個文件緩沖區(qū)。讀寫文件:是指對文件讀、寫、追加和定位操作。關閉文件:切斷文件與程序聯絡,釋放文件緩沖

區(qū)。

C語言輸入輸出函數庫中提供了大量函數,用于完成對數據文件建立、數據讀寫、數據追加等操作。在程序中調用這些函數時,必須先用include命令包含stdio.h文件。

/10/1011c12文件待修改第11頁慣用調用形式:FILE

*fp;fp=fopen(文件名,文件使用方式);

文件名:需要打開文件名稱(字符串)。

文件使用方式:是含有特定含義符號。10.1文件概述10.1.2文件打開與關閉1.文件打開函數fopen(

)函數功效:

按指定文件使用方式打開指定文件。若文件打開成功,為該文件分配一個文件緩沖區(qū)和一個FILE類型變量,返回一個FILE類型指針;

若文件打開失敗,返回NULL。/10/1012c12文件待修改第12頁文本文件三種基本使用方式”r”:只讀方式

為讀(輸入)文本文件打開文件。若文件不存在,返回NULL?!眞”:只寫方式

為寫(輸出)文本文件打開文件。若文件不存在,則建立一個新文件;若文件已存在,則清空文件?!盿”:追加方式為寫(輸出)文本文件打開文件。若文件已存在,則保持原來文件內容,將新數據增加到原來數據后面;若文件不存在,則返回NULL。10.1文件概述10.1.2文件打開與關閉/10/1013c12文件待修改第13頁二進制文件三種基本使用方式”rb”:只讀方式

為讀(輸入)二進制文件打開文件。若文件不存在,返回NULL?!眞b”:只寫方式

為寫(輸出)二進制文件打開文件。若文件不存在,則建立一個新文件;若文件已存在,則清空文件?!盿b”:追加方式為寫(輸出)二進制文件打開文件。若文件已存在,則保持原來文件內容,將新數據增加到原來數據后面;若文件不存在,則返回NULL。10.1文件概述10.1.2文件打開與關閉/10/1014c12文件待修改第14頁10.1文件概述10.1.2文件打開與關閉文件其它打開方式

”r+”:能夠對文本文件進行讀/寫操作。若文件不存在返回NULL;若文件存在內容不被清空。

”w+”:能夠對文本文件進行讀/寫操作。 若文件已經存在,則先清空文件原來內容。

”a+”:能夠對文本文件進行讀/追加操作。文件內容不會清空。

”rb+”:能夠對二進制文件進行讀/寫操作。

”wb+”:能夠對二進制文件進行讀/寫操作。

”ab+”:能夠對二進制文件進行讀/追加操作。/10/1015c12文件待修改第15頁檢驗文件打開操作是否成功

if((fp=fopen("filename","r"))==NULL){printf(”Cannotopenfile.\n”);

exit(0); }

檢驗以只讀方式打開文件名為filename文件是否成功。

exit函數作用:結束程序執(zhí)行,并將實參0作為函數返回值傳給操作系統(tǒng)。

10.1文件概述10.1.2文件打開與關閉/10/1016c12文件待修改第16頁慣用調用形式:FILE

*fp;fclose(fp);fp:已經打開文件指針。10.1文件概述10.1.2文件打開與關閉2.文件關閉函數fclose(

)函數功效:關閉fp指定文件,釋放該文件緩沖區(qū)、FILE類型變量及文件指針。若文件關閉成功,則返回0;若文件關閉失敗,則返回非0值。/10/1017c12文件待修改第17頁慣用調用形式:FILE

*fp;fputc(ch,fp);

ch:需要輸出字符,能夠是字符常量或字符變量;fp:文件指針變量。對文本文件讀寫操作,必須按文件中字符先后次序進行,只能在操作了第i個字符之后,才能操作第i+1個字符。在對文件操作時,文件讀寫指針由系統(tǒng)自動向后移動。10.2文本文件讀寫10.2.1文件字符輸入輸出函數1.字符輸出函數fputc(

)(或putc(

))函數功效:

將一個字符(ASCII碼)寫入到fp所指向文件(該文件必須是以寫或讀寫方式打開)中。若輸出操作成功,函數返回寫入字符;不然,返回EOF。系統(tǒng)定義文本文件結束標志,其值為(-1)。

①putc函數與fputc函數功效相同。在stdio.h文件中被定義為#defineputc(c,f)fputc((c),f)②標準文件中用putchar函數是fputc函數特殊使用方法,它在stdio.h文件中被定義為#defineputchar(c)putc((c),stdout)/10/1018c12文件待修改第18頁慣用調用形式:FILE

*fp;

ch

=fgetc(fp);

ch:能夠是字符變量或整型變量;fp:文件指針變量。10.2文本文件讀寫10.2.1文件字符輸入輸出函數2.字符輸入函數fgetc(

)(或getc(

))函數功效:從fp所指向文件(該文件必須是以讀或讀寫方式打開)中讀取一個字符。若輸入操作成功,函數返回讀入字符;若文件結束或輸入操作失敗,則返回EOF。

①getc函數與fgetc函數功效相同。在stdio.h文件中被定義為#definegetc(f)fgetc(f)②標準文件中用getchar函數是fgetc函數特殊使用方法,它在stdio.h文件中被定義為#definegetchar()getc(stdin)/10/1019c12文件待修改第19頁【例10.1】利用fputc和fgetc函數建立一個文本文件,并顯示文件中內容。#include<stdio.h>main(){FILE*fp;/*定義一個文件指針變量fp*/intc;/*c為存放字符變量*/

charfilename[40];/*filename用于存放數據文件名*/

printf("filename:");/*提醒輸入磁盤文件名*/

gets(filename);

if((fp=fopen(filename,"w"))==NULL)

{printf("Can'topenthe%s\n",filename);

exit(0);}10.2文本文件讀寫10.2.1文件字符輸入輸出函數測試打開文件是否成功/10/1020c12文件待修改第20頁while((c=getchar())!=EOF)/*鍵盤文件結束標志:輸入Ctrl+z,顯示^Z后回車*/

putc(c,fp);/*將鍵盤輸入字符寫到文件中*/fclose(fp);/*建立文件結束,關閉文件*/printf("outfile:\n");fp=fopen(filename,"r");/*以讀方式打開文本文件*/while((c=getc(fp))!=EOF)/*未讀到文件結束標志時*/

putchar(c);/*在顯示器顯示讀出字符*/fclose(fp);/*讀文件結束,關閉文件*/}10.2文本文件讀寫10.2.1文件字符輸入輸出函數/10/1021c12文件待修改第21頁慣用調用形式:FILE

*fp;

feof(fp);

fp:文件指針變量。10.2文本文件讀寫10.2.2文件結束測試函數函數功效:測試fp所指向文件是否已讀到文件尾部。若該文件沒有結束,則返回0;若文件結束,則返回非0值。對文本文件進行讀操作時,比如fgetc(

)返回EOF,即可作文件結束處理。但在二進制文件中-1是正當數據,所以系統(tǒng)提供了一個適用對象更普遍文件結束測試函數feof。/10/1022c12文件待修改第22頁比如:復制一個磁盤文件。#include<stdio.h>main(

){FILE*infp,*outfp;charinfile[40],outfile[40];

int

ch;printf("inputfilename:");scanf("%s",infile);printf("outputfilename:");scanf("%s",outfile);if((infp=fopen(infile,"r"))==NULL)

/*

打開源文件

*/

{ printf("infileopenerror.\n");

exit(0);}if((outfp=fopen(outfile,"w"))==NULL)/*

打開目標文件

*/

{ printf("outfileopenerror.\n");

exit(0);}

ch=fgetc(infp);/*

從源文件中讀一個字符

*/while(!feof(infp))/*源文件未讀完

*/

{fputc(ch,

outfp);

ch=fgetc(infp);}/*復制文件*/

fclose(infp);fclose(outfp);}10.2文本文件讀寫10.2.2文件結束測試函數/10/1023c12文件待修改第23頁慣用調用形式:FILE

*fp;

fputs(

str,

fp

);

str:需要輸出字符串,能夠是字符串常量或字符串指針;fp:文件指針變量。

fputs與puts函數功效類似,它們區(qū)分:puts函數能將字符串結束標志'\0'轉換成'\n'

輸出,所以字符串在顯示器輸出后,光標移至下一行;而fputs函數對字符串結束標志'\0'處理僅僅是將其舍去。10.2文本文件讀寫10.2.3文件字符串輸入輸出函數1.字符串輸出函數fputs(

)函數功效:將字符串(不包含字符串結束標志'\0')寫到文件指針fp所指向文件中。若輸出操作成功,返回非0值;若輸出操作失敗,則返回0。/10/1024c12文件待修改第24頁慣用調用形式:FILE

*fp;

fgets(

str,

n,

fp

);

str:字符指針,能夠是字符數組名或字符指針變量;n:讀取字符個數(n-1)。fp:文件指針變量。10.2文本文件讀寫10.2.3文件字符串輸入輸出函數2.字符串輸入函數fgets(

)函數功效:從fp所指向文件中,讀取n-1個字符后,加上字符串結束標志'\0'組成一個字符串,存入字符數組中。若輸入操作成功,返回字符數組首地址;若文件結束或輸入操作失敗,則返回NULL。①

從文件讀取字符過程中,假如讀到回車符('\15')舍去,假如讀到換行符('\12')仍按字符讀出,再加上'\0'

作為一個字符串,同時結束文本行讀取操作,函數正常返回。當讀到文件結束時,直接加上'\0'作為一個字符串,函數正常返回。②

fgets與gets函數區(qū)分:gets函數以換行符作為行結束標志,并舍去換行符。fgets函數也以換行符作為行讀結束標志,但換行符同時還作為字符串內容。所以可將含有換行符文本文件看作是由一行一行字符組成。/10/1025c12文件待修改第25頁【例10.3】應用fputs和fgets函數,建立和讀取文本文件。#include"stdio.h"#include"string.h"main(){FILE*fp;/*定義一個文件指針變量fp*/charfilename[40],str[81];

printf("filename:");/*提醒輸入磁盤文件名*/

gets(filename);if((fp=fopen(filename,"w"))==NULL)/*

在磁盤中新建并打開一個文本文件,同時測試是否成功

*/{printf("Can'topenthe%s\n",filename);exit(0);}10.2文本文件讀寫10.2.3文件字符串輸入輸出函數/10/1026c12文件待修改第26頁while(strlen(gets(str))>0)/*鍵盤輸入空串(即僅輸入回車)則輸入全部結束*/{fputs(str,fp);/*將鍵盤輸入字符串寫到文件中*/

fputc('\n',fp);/*在文件中加入換行符作為字符串分隔符*/}fclose(fp);/*建立文件結束,關閉文件*/printf("outfile:\n");fp=fopen(filename,"r");/*以讀方式打開文本文件*/while((fgets(str,81,fp))!=NULL)/*從文件讀取字符串并測試文件是否已讀完*/

printf("%s",str);/*將文件中讀取字符串分行顯示*/fclose(fp);/*讀文件結束,關閉文件*/}10.2文本文件讀寫10.2.3文件字符串輸入輸出函數/10/1027c12文件待修改第27頁與標準文件格式輸入輸出函數scanf和printf相對應,文本文件也有格式輸入輸出函數fscanf和fprintf。它們功效和格式基本相同,不一樣之處于于scanf和printf讀寫對象是終端(鍵盤和顯示器),fscanf和fprintf讀寫對象是磁盤文件。慣用調用形式:FILE

*fp;

fprintf(

fp,

格式控制串,輸出項參數表

);fp:文件指針變量。格式控制串和輸出項參數表要求和使用方法與printf函數相同。10.2文本文件讀寫10.2.4文件格式輸入輸出函數1.格式輸出函數fprintf(

)函數功效:將輸出項按指定格式寫入fp所指向文件中。若輸出操作成功,返回寫入字節(jié)數;若輸出操作失敗,則返回EOF。/10/1028c12文件待修改第28頁慣用調用形式:FILE

*fp;

fscanf(

fp,

格式控制串,

地址表);

fp:文件指針變量。格式控制串和地址表要求和使用方法與scanf函數相同。10.2文本文件讀寫10.2.4文件格式輸入輸出函數2.格式輸入函數fscanf(

)函數功效:按格式控制串所描述格式,從fp所指向文件中讀取數據,送到指定內存地址單元中。若輸入操作成功,返回實際讀出數據項個數,不包含數據分隔符。若沒有讀數據項,則返回0。若文件結束或調用失敗,則返回EOF。/10/1029c12文件待修改第29頁

二進制文件存放信息形式與內存中存放信息形式是一致,假如需要在內存與磁盤文件之間頻繁交換數據,最好采取二進制文件。二進制文件普通是同類型數據集合,數據之間無分隔符,每個數據所占字節(jié)數是一個定值,所以二進制文件除了能夠次序存取外,還可利用定位函數方便地進行隨機存取。慣用調用形式:FILE

*fp;

putw(

w,

fp

);

w:要輸出整型數據,能夠是常量或變量。fp:文件指針變量。10.3二進制文件讀寫10.3.1文件字輸入輸出函數1.字輸出函數putw(

)函數功效:把整型數w寫入fp所指向文件(以寫方式打開二進制文件)。若輸出操作成功,返回w值;若輸出操作失敗,則返回EOF。因為EOF(-1)是一個正當整數,所以應該用ferror函數檢測函數調用是否犯錯。

/10/1030c12文件待修改第30頁慣用調用形式:FILE

*fp;

getw(

fp

);

fp:文件指針變量。10.3二進制文件讀寫10.3.1文件字輸入輸出函數2.字輸入函數getw(

)函數功效:從fp所指向文件(以讀方式打開二進制文件)中讀取一個整型數。若輸入操作成功,返回從文件中讀取整數。若文件結束或調用失敗,則返回EOF。EOF(-1)是getw函數可能返回正當值,所以應該用feof函數或ferror函數檢測文件是否結束或調用失敗。

/10/1031c12文件待修改第31頁慣用調用形式:FILE

*fp;

ferror(

fp

);

fp:文件指針變量。10.3二進制文件讀寫10.3.1文件字輸入輸出函數3.文件操作錯誤函數ferror(

)函數功效:檢測文件讀寫是否犯錯。若犯錯,則指示器置1,不然指示器置0。函數返回錯誤指示器值。說明:錯誤指示器若置1后,只有調用clearerr函數或

rewind函數才能將其清0。

/10/1032c12文件待修改第32頁慣用調用形式:FILE

*fp;

clearerr(

fp

);

fp:文件指針變量。10.3二進制文件讀寫10.3.1文件字輸入輸出函數4.去除錯誤標志函數clearerr(

)函數功效:將文件錯誤指示器和文件結束指示器清0。該函數無返回值。

/10/1033c12文件待修改第33頁【例10.5】應用putw和getw函數建立二進制整型數據文件并讀取其中數據。#include"stdio.h"main(){FILE*fp;/*定義一個文件指針變量fp*/charfilename[40];/*filename用于存放數據文件名*/

inti,n1=5,n2,x[5]={10,22,36,48,59},y[5];printf("filename:");gets(filename);if((fp=fopen(filename,"wb"))==NULL)/*新建并打開一個二進制文件,并測試是否成功*/{printf("Can'topenthe%s\n",filename);exit(0);}10.3二進制文件讀寫10.3.1文件字輸入輸出函數/10/1034c12文件待修改第34頁putw(n1,fp);/*向二進制文件寫入一個整數*/

for(i=0;i<n1;i++)putw(x[i],fp);/*將x數組5個整數寫入二進制文件*/

fclose(fp);/*建立文件結束,關閉文件*/

printf("outfile:\n");

fp=fopen(filename,"rb");/*以讀方式打開二進制文件*/

n2=getw(fp);/*從二進制文件讀取一個整數*/

for(i=0;i<n2;i++){y[i]=getw(fp);/*從文件讀取一個整數賦給y數組元素*/printf("%d",y[i]);}printf("\n");fclose(fp);/*讀文件結束,關閉文件*/

}10.3二進制文件讀寫10.3.1文件字輸入輸出函數/10/1035c12文件待修改第35頁慣用調用形式:fwrite(p,size,n,fp);

p:某類型指針;

size:某類型數據存放空間字節(jié)數(數據項大?。?;

n:此次寫入文件數據項數;fp:文件指針變量。10.3二進制文件讀寫10.3.2文件數據塊輸入輸出函數1.數據塊輸出函數fwrite(

)函數功效:將p指向存放區(qū)中n個數據項寫入fp所指向文件。若輸出操作成功,返回寫入數據項數;若輸出操作失敗,則返回0。利用數據塊輸入輸出函數可建立整型、實型、結構體類型等各種類型二進制文件。

/10/1036c12文件待修改第36頁慣用調用形式:fread(p,size,n,fp);

p:某類型指針;

size:某類型數據存放空間字節(jié)數(數據項大?。?;

n:此次從文件中讀取數據項數;fp:文件指針變量。10.3二進制文件讀寫10.3.2文件數據塊輸入輸出函數2.數據塊輸入函數fread(

)函數功效:從fp所指向文件中,讀取n個數據項,存放到p所指向存放區(qū)域。若輸入操作成功,返回實際讀出數據項個數。若文件結束或調用失敗,則返回0。/10/1037c12文件待修改第37頁【例10.6】應用fwrite與fread函數建立一個存放學生電話簿二進制數據文件并讀取其中數據。#include"stdio.h"main(){FILE*fp;inti;charfilename[40];/*filename用于存放數據文件名*/

structtel{charname[20],tel[9];}in[5],out[5];printf("filename:");gets(filename);if((fp=fopen(filename,"wb"))==NULL){printf("Can'topenthe%s\n",filename);exit(0);}10.3二進制文件讀寫10.3.2文件數據塊輸入輸出函數新建并打開一個二進制文件,并測試是否成功

/10/1038c12文件待修改第38頁for(i=0;i<5;i++)

{printf("name:");gets(in[i].name);printf("tel:");gets(in[i].tel);}fwrite(in,sizeof(structtel),5,fp);/*文件中寫入5個學生電話*/fclose(fp);/*建立文件結束,關閉文件*/

printf("outfile:\n");

fp=fopen(filename,"rb");/*以讀方式打開二進制文件*/fread(out,sizeof(structtel),5,fp);/*從文件讀取5個結構體數據*/

溫馨提示

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

評論

0/150

提交評論