第章文件教学目的与要求教学重点与难点课件_第1页
第章文件教学目的与要求教学重点与难点课件_第2页
第章文件教学目的与要求教学重点与难点课件_第3页
第章文件教学目的与要求教学重点与难点课件_第4页
第章文件教学目的与要求教学重点与难点课件_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章文件【教学目的与要求】1、掌握文件的基本概念;2、学会使用文件的打开、关闭、常用读写方法。【教学重点与难点】C文件的打开、关闭、读写、定位等函数的功能、格式、调用方法。

主要内容8.1C文件概述8.2文件类型指针8.3文件的打开与关闭8.4文件的读写8.5文件的定位8.6出错的检测8.7文件输入输出小结§8.1C文件概述一、什么是文件存储在外部储存设备(如磁盘、光盘、磁带等)上的一段数据流(或称信息的有序集合)内存硬盘写读大量的数据保存到文件实现永久存储保存在变量和数组中的数据是暂时的1、从用户的角度看,文件可分为普通文件和设备文件两种。二、文件的分类普通文件:

指驻留在外部存储介质(磁盘或其它存储介质)上的一个有序数据集,可以是源程序文件、目标文件、可执行程序;也可以是一组待输入处理的原始数据,或者是程序执行后输出的一组结果。对于源文件、目标文件、可执行程序可以称作程序文件,对输入输出的数据可称作数据文件。

设备文件:指与主机相联的各种外部设备,如显示器、打印机、键盘等。在操作系统中,把外部设备也看作是一个文件来进行管理,把它们的输入、输出等同于对磁盘文件的读和写。通常把显示器定义为标准输出文件,一般情况下在屏幕上显示有关信息就是向标准输出文件输出,如前面经常使用的printf、putchar、puts等输出函数就是向显示器输出。键盘通常被指定标准为输入文件,从键盘上输入就意味着从标准输入文件上输入数据。scanf、getchar、gets等函数就使用键盘输入。2、从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,一个整数678,对应的数字符是‘6’,‘7’,‘8’,对应的ASCII码是54(二进行制00110110),55(二进行制00110111),56(二进行制00111000),故678用ASCII文件存放时,共占用3个字节,存放形式为:001101100011011100111000。使用ASCII码文件,一个字节代表一个字符,便于对字符一一处理和输出,但占用较多的存储空间,保存在内存中的所有数据在存入文件的时候都要先转换为等价的字符形式,并且要花费转换时间(ASCII码与二进制之间的转换),但以ASCII码形式存储的文件在DOS操作系统下可以直接阅读。二进制文件

按二进制的编码方式来存放文件的。举例1234整数0000010011010010把值1234的二进制编码写入文件中3、从C语言对文件的处理方式由于不同的语言和系统对"缓冲区"的处理方式不同,就产生了两种不同的文件处理方式。文件处理方式是指系统在进行文件操作时所采用的内部处理方式。从C语言对文件的处理方式来看,可以将文件分为两类:缓冲文件系统和非缓冲文件系统。缓冲文件系统是指对每个正在使用的文件,系统自动地在内存中为其开辟一个缓冲区。所谓"非缓冲文件系统"是指系统不会自动开辟缓冲区,而要由程序自行设置文件的缓冲区。在ANSIC标准中对文本文件和二进制文件均统一采用缓冲文件系统进行处理。缓冲文件系统系统在内存中开辟一块缓冲区以便慢速的外设与其成块地进行数据交换。向磁盘(文件)输出数据:数据→缓冲区,装满缓冲区后→磁盘文件。从磁盘(文件)读入数据:先一次性从磁盘文件将一批数据输入到缓冲区,然后再从缓冲区逐个数据读入到变量。8.2文件类型指针文件指针(指向文件的指针)缓冲文件系统为每个使用的文件在内存中开辟一存储区存放其相关信息,这些信息用一个结构体变量保存,该结构体类型的名字是FILE。

程序通过FILE类型指针建立和文件的联系,进行关于文件的一切操作。定义形式:FILE*指针变量名;

举例:定义了一个结构体FILE类型的指针变量:fp。FILE*fp;用于存放文件的缓冲区首地址,即指向一个文件。在stdio.h文件中有以下的文件类型声明:typedef

struct{shortlevel;/*缓冲区“满”或“空”的程度*/

unsignedflags;/*文件状态标志*/

charfd;/*文件描述符*/

unsignedcharhold;/*如无缓冲区不读取字符*/

shortbsize;/*缓冲区的大小*/

unsignedchar*buffer;/*数据缓冲区的位置*/unsignedchar*curp;/*指针,当前的指向*/unsignedistemp;/*临时文件,指示器*/shorttoken;/*用于有效性检查*/}FILE;8.3文件的打开与关闭一、文件的打开方法:为了打开一个文件,首先要为该文件定义一个文件类型指针;然后用C语言提供的fopen()函数打开文件。fopen函数有两个参数:“文件名”与“文件使用方式”,它们均是字符串。一般形式:FILE*文件指针名;…文件指针名=fopen("文件名","文件使用方式");其中,“文件指针名”是FILE类型的指针变量;

“文件名”是被打开文件的文件名;

“使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。举例其意义是在当前目录下打开文件teat.dat,只允许进行“读”操作,并使fp指向该文件。举例其功能是打开C盘上子目录TC里的文件teat.dat,这是一个二进制文件,只允许按二进制方式进行读操作两个反斜线“\\”中的第一个表示转义字符,第二个表示目录。FILE*fp;fp=(“test.dat","r");FILE*fp;fp=("C:\\TC\\teat.dat","rb");char*mode含义注释“r”只读打开文本文件,仅允许从文件读取数据“w”只写打开文本文件,仅允许向文件输出数据“a”追加打开文本文件,仅允许从文件尾部追加数据“rb”只读打开二进制文件,仅允许从文件读取数据“wb”只写打开二进制文件,仅允许向文件输出数据“ab”追加打开二进制文件,仅允许从文件尾部追加数据“r+”读写打开文本文件,允许输入/输出数据到文件“w+”读写创建新文本文件,允许输入/输出数据到文件“a+”读写打开文本文件,允许输入/输出数据到文件“rb+”读写打开二进制文件,允许输入/输出数据到文件“wb+”读写创建新二进制文件,允许输入/输出数据到文件“ab+”读写打开二进制文件,允许输入/输出数据到文件对于文件使用方式有以下几点说明:(1)文件使用方式由“r,w,a,t,b,+”这六个字符拼成,各字符的含义是:r(read)表示读出,w(write)表示写入,a(append)表示在文件末尾追加,t(text)代表文本文件,可省略不写,b(binary)代表二进制文件,+表示读和写。(2)凡用“

r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。(3)用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。(4)若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。(5)在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。例如,下列程序段可用来检查d盘上的一个文件file11.dat是否成功打开,并且进行相应处理:if((fp=fopen("d:\\file11.dat","rb")==NULL){printf("\ncannotopenthefiled:\\file11.dat");exit(0);}这个程序段的作用是:如果返回的指针为非空表示正常打开文件,若为空则表示不能打开d盘上的文件file11.dat文件,打印出错信息“cannotopenthefiled:\\file11.dat”,然后执行exit(0)退出程序。标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。二、文件的关闭方法:使用fclose()函数。一般形式:fclose(文件指针);举例FILE*fp;…fclose(fp);如果不关闭文件而直接使程序停止运行,这时会丢失缓冲区中还未写入文件的部分信息

将fp指向的缓冲区中的数据存放到外存储器的文件中,然后释放该缓冲区,使文件指针变量不再指向与该文件对应的FILE结构,从而断开与文件的关联。操作正常返回0,否则返回EOF(是在stdio.h文件中定义的符号常量,值为-1)。#include<stdio.h>#include<stdlib.h>voidmain(){

FILE*fpFile;

int

nStatus=0;

If(fpFile=fopen("a.txt","w+"))==NULL){

printf(“Openfilefailed!\n”);

exit(0);}fprintf(fpFile,"%s","TestFile");nStatus=fclose(fpFile);printf("%d",nStatus);}【例1】打开名为“a.txt”的文件,并向文件输出字符串“TestFile”,然后关闭文件,同时在屏幕上输出fclose的返回值。中断正在执行的程序读写方式用exit函数时加/*定义声明文件指针*/FILE*fp;/*打开文件*/fp=fopen("文件名","r");/*判断是否打开文件*/if(fp==NULL){/*当文件打开失败时的处理*/}/*对文件进行读写操作*//*关闭文件*/fclose(fp);文件操作的一般步骤例8-1

以只读写方式打开一个名为test.txt的文件,向文件中写入字符串”cprogram”,然后关闭文件,并判断文件是否成功打开与关闭。#include<stdio.h>voidmain(){FILE*fp;intk;fp=fopen("test.txt","w+");if(fp==NULL){printf("Fileopenerror\n");exit(0);}

fprintf(fp,”%s”,”cprogram”);k=fclose(fp);if(k==0)printf("OK");elseprintf("Filecloseerror");}8.4文件的读写当一个文件打开后,就可以对它进行读写操作了。常用的文件读写操作函数包括:(1)字符读写函数、(2)字符串读写函数、(3)格式读写函数、(4)数据块读写函数。8.4.1fputc函数和fgetc函数字符读写函数是以字符(字节)为单位进行读写的文件操作函数。每次可从指定文件中读出或向指定文件内写入一个字符。一、字符的读写写字符fputc()函数

fputc(字符量,文件指针);

将一个字符写到磁盘文件上去返回值:调用成功时返回输出的字符;失败时返回EOF。举例表示向文件指针变量fp指向的文件写入一个字符’a’。fputc('a',fp);对于fputc函数的使用也要说明几点:(1)被写入的文件可以用写、读写、追加方式打开,用写或读写方式打开一个已存在的文件时将清除原有的文件内容,写入字符是从文件开头位置开始存放。如需保留原有文件内容,希望写入的字符从文件末尾开始存放,必须以追加方式打开文件。被写入的文件若不存在,则创建该文件。(2)每写入一个字符,文件内部位置指针向后移动一个字节。(3)fputc函数有一个返回值,如写入成功则返回写入的字符,否则返回一个写入失败标志(EOF)。可用此来判断写入是否成功。读字符:fgetc()函数从指定文件读入一个字符,该文件必须是以读或读写方式打开。返回值:调用成功时返回读入的字符;文件结束时返回文件结束符EOF。举例表示从文件指针变量fp指向的文件中读出一个字符,赋给字符变量chch=fgetc(fp);对于fgetc函数的使用有以下几点说明:(1)在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。(2)在文件内部有一个位置指针,用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc

函数后,该位置指针将向后移动一个字节。因此可连续多次使用fgetc函数,读取多个字符。应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。例8-2

从键盘输入一行字符,写入到d盘上的文件test.txt中,再把该文件中的字符读出在屏幕上依次显示出来。#include<stdio.h>voidmain(){ FILE*fp;charch;

if((fp=fopen("d:\\test.txt","w+"))==NULL)//以读写方式打开文件 { printf("Cannotopenthefile,exit!"); exit(1); }

printf("输入一行字符,按回车键结束:\n");

ch=getchar(); while(ch!='\n') { fputc(ch,fp);//

字符逐个写入文件中

ch=getchar(); }

rewind(fp);//

文件读写指针复位,移到文件开头ch=fgetc(fp);//

从文件读出字符并赋值给变量ch

while(ch!=EOF) { putchar(ch);

ch=fgetc(fp); }

putchar(‘\n’);

fclose(fp);}运行程序,输入一行字符:wearestudent屏幕输出相同的字符串:wearestudent8.4.2读写字符串函数fgets和fputs1、fgets()函数 格式:fgets(字符数组名,n,文件指针);

从文件指针指向的文件读取n-1个字符并把它们放到指定字符数组中。如果在读入n-1个字符完成之前遇到换行符‘\n’或文件结束符EOF则结束读取,在读取的字符串之后自动加一个字符串结束字符‘\0’。返回值:字符数组的地址。举例从fp所指的文件中读出n-1个字符送入字符数组str中。fgets(str,n,fp);例8-3

调用fgets函数从d盘上的文件test.txt中读出一个含14个字符的字符串到字符数组str中。#include<stdio.h>voidmain(){ FILE*fp; charstr[15];

if((fp=fopen("d:\\test.txt","r")==NULL)) {printf("\nCannotopenfilestrikeanykeyexit!"); exit(1); }

fgets(str,15,fp);

printf("\n%s\n",str);

fclose(fp);}在上例中d盘上的文件test.txt文件写入了一行字符“wearestudent”,运行程序,打开文件后,从文件中读出14个字符送入字符数组str中保存,并自动在数组最后一个单元内将加上'\0',然后在屏幕上显示输出str数组,即在屏幕上显示“wearestudent”。2、fputs()函数

fputs(字符数组名,文件指针);

向指定的文件输出一个字符串,‘\0’结束符不输出。其中字符串可以是字符串常量、字符数组名或指针变量。返回值:调用成功时,返回0;否则返回EOF。举例表示把字符数组str中的字符串写入fp所指的文件之中。fputs(“str”,fp);函数调用形式例8-4在建立的文件"d:\\test.txt"中追加一个字符串str2,并显示文件中的全部内容。#include<stdio.h>voidmain(){FILE*fp;charstr2[20],ch;

printf("inputastring:\n");gets(str2);

if((fp=fopen("d:\\test.txt","a+"))==NULL){printf("Cannotopenfilestrikeanykeyexit!");

getchar();exit(0);}fputs(str2,fp);rewind(fp);ch=fgetc(fp);while(ch!=EOF){putchar(ch);

ch=fgetc(fp);}printf("\n");fclose(fp);}本例要求在test.txt文件末加写字符串,因此,在程序中以追加读写文本文件的方式打开文件test.txt,然后输入字符串,并用fputs函数把该串写入文件test.txt。在读出文件中的字符前用rewind函数把文件内部位置指针移到文件首,再进入循环逐个显示当前文件中的全部内容。例8-5

从上例中建立的文件test.txt中读出字符串,再写入另一个文件test2.txt中,同时显示在屏幕上。#include<stdio.h>#include<string.h>voidmain(){FILE*fp1,*fp2;charstr[100];if((fp1=fopen("d:\\test.txt","r"))==NULL){printf("cannotopenfile\n");exit(0);}if((fp2=fopen("test2.txt","w"))==NULL){printf("cannotopenfile\n");exit(0);}fgets(str,50,fp1);

if((strlen(str))>0)//从文件中读回的字符串长度大于0{fputs(str,fp2);//把字符串并写入文件2

puts(str);//在屏幕显示}fclose(fp1);fclose(fp2);}程序共操作两个文件,需定义两个文件变量指针,因此在操作文件之前,应将两个文件以需要的工作方式同时打开(不分先后),读写完成后,再关闭文件。8.4.3格式化读写函数fscanf和fprinf1格式化读fscanf()函数

fscanf(文件指针,”格式控制字符串”,地址表列);

从fp指向的ASCII文件中读取字符,按格式控制符的含义存入对应的输入表列变量中,返回值为输入数据的个数。举例表示从fp指向的文件中读出两个整数赋给a,bint

a,bfscanf(fp,%d%d",&a,&b);2格式化写fprintf()函数

fprintf(文件指针,”格式控制字符串”,输出表列);

将输出表列中的数据,按指定格式控制符的说明,写入fp指向的ASCII文件中,返回值为写入文件的数据实际个数。举例将x,y的值写入fp指向的文件。Floatx=2.5,y=567.89fprintf(fp,"%f%f",x,y);例8-7调用scanf函数从指定文件test.dat中读出数据。#include<stdio.h>main(){char*s;floatx;FILE*fp;fp=fopen("test.dat","r");/*只读方式打开文字本件*/fgets(s,24,fp);/*从文件中读取23个字符*/printf("%s",s);/*输出所读的字符串*/fscanf(fp,"%f",&x);/*读取单精度实型数*/printf("%f",x);/*输出所读实型数*/fclose(fp);/*关闭文件*/getch();/*暂停,任一键继续*/}运行后屏幕显示:ThescoreofCprogram:85.500000说明:fscanf(fp,"%s",s)和fgets(s,24,fp)函数都能读入字符串,但是fscanf()函数读到空白符时,便自动结束,在使用时要特别注意。8.4.4数据块读写函数fread和fwritefscanf()函数和fprintf()函数对磁盘文件读写,使用方便,易理解。但输入输出需要转化。因此,在内存与磁盘频繁交换数据的情况下,最好用fread()和fwrite()函数。fread(内存地址,数据项字节数,数据项个数,文件指针);fwrite(内存地址,数据项字节数,数据项个数,文件指针);通常用于对二进制文件的读写操作。举例表示从已打开的一个文件中读入5个整数,依次送入整型数组a中。inta[5];fread(a,sizeof(int),5,fp);例8-8调用fwrite函数写入10个整数到数据文件data.dat中#include<stdio.h>intmain(){FILE*fp;inti,array[10];if((fp=fopen("d:\\data.dat","wb"))==NULL){printf("Openfilefailed!\n");

exit(0);}for(i=0;i<10;i++)

scanf("%d",&array[i]);fwrite(array,sizeof(int),10,fp);fclose(fp);return0;}程序运行输入:11121314151617181920程序运行的结果:把输入的10个整数写入到文件data.dat中例8-9调用fread函数从文件data.dat中读出10个整数到保存在指定数组中,并在屏幕上显示。#include<stdio.h>intmain(){FILE*fp;intarray[10];inti;if((fp=fopen("d:\\data.dat","rb"))==NULL){printf("Openfilefailed!\n");exit(0);}fread(array,sizeof(int),10,fp);

for(i=0;i<10;i++)printf("%4d",array[i]);

fclose(fp);return0;}程序运行结果:11121314151617181920例8-10

从键盘输入三个学生数据,写入一个文件中,再读出这三个学生的数据显示在屏幕上。#include<stdio.h>structstu{charname[10];intnum;intage;charaddr[15];};main(){structstuboya[3],boyb[3],*pp,*qq;FILE*fp;charch;inti;if((fp=fopen("d:\\stu_list","wb+"))==NULL){printf("Cannotopenfilestrikeanykeyexit!");exit(0);

}printf("\ninputstudent’sdata\n");for(i=0;i<3;i++)scanf("%s%d%d%s",boya[i].name,&boya[i].num,&boya[i].age,boya[i].addr);fwrite(boya,sizeof(structstu),3,fp);rewind(fp);fread(boyb,sizeof(structstu),3,fp);printf("\nnamenumberageaddr\n");for(i=0;i<3;i++)printf("%s%6d%6d%s\n",boyb[i].name,boyb[i].num,boyb[i].age,boyb[i].addr);fclose(fp);}

本例题程序定义了一个结构体类型stu,说明了两个结构数组boya和boyb,以读写方式打开二进制文件“stu_list”,从键盘输入三个学生数据到数组boya中,然后写入该文件中,再通过定位函数把文件内部位置指针移到文件首,读出三个学生数据后存入指定数组boyb,并在屏幕上显示。#include<stdio.h>#include<stdlib.h>structstud{charname[20]; intage; charnum[20];}s[5],t;voidmain(){ FILE*fp; inti=0;if((fp=fopen("d:\\stud.dat","wb"))==NULL){ printf("Erroropeningfiled:\\stud.dat\n"); exit(1);}while(i<5){ printf("inputname:");scanf("%s",s[i].name);printf("inputage:");scanf("%d",&s[i].age); printf("inputnumber:"); scanf("%s",&s[i].num); i++;}【例5】输入5个学生数据到文件d:\stud.dat中,然后从文件中把数据读出来并显示。只写(二进制文件)输入5个学生数据if(fwrite(s,sizeof(structstud),5,fp)!=5){ printf("Errorwritingfiled:\\stud.dat\n"); exit(1);}fclose(fp);if((fp=fopen("d:\\stud.dat","rb"))==NULL){ printf("Erroropeningfiled:\\stud.dat\n"); exit(1);}i=0;将5个学生数据写入二进制文件while(!feof(fp)){ if(fread(&t,sizeof(structstud),1,fp)!=1) {printf("Errorreadingfiled:\\stud.dat\n"); exit(1);} i++; printf("the%dthstudent:",i); printf("name:%s",); printf("age:%d",t.age); printf("number:%s\n",t.num);}fclose(fp);}只读(二进制文件)从二进制文件读出5个学生数据8.5文件的定位文件内部的位置按要求移动位置指针,是实现随机读写的关键。rewind()函数

rewind(文件指针);使位置指针重新返回到文件的开头,函数无返回值。例如:rewind(fp);/*fp是指向一个打开的文件*/ftell()函数

ftell(文件类型指针);得到当前文件指针位置。返回值:调用成功时,返回longint数值,表示文件指针位置;出错返回-1。feof函数函数原型:intfeof(FILE*fp);调用格式:feof(文件指针);功能:判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。文件内部的位置fseek()函数

fseek(文件指针,位移量,起始点);改变文件的位置指针。其中,文件指针:是文件打开时返回的文件指针。位移量:是指以起始点为基点,向前向后移动的字节数,可以为负值。大多数C语言版本要求位移量为long型数。起始点:表示从何处开始计算位移量,规定的起始点有:返回值:操作成功返回0,否则返回非0。起始点名字数字代号文件开始SEEK_SET0当前位置SEEK_CUR1文件末尾SEEK_END2例如:fseek(fp,20L,0);/*把位置指针从文件开头向前移动20个字节*/fseek(fp,50L,1);/*将位置指针移到离当前位置50个字节处*/fseek(fp,-10L,2);/*将位置指针从文件末尾处往回退10个字节说明:fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。文件的随机读写在移动位置指针之后,即可用前面介绍的任一种读写函数进行读写,由于一般是读写一个数据块,因此常用fread和fwrite函数。例8-11利用例8-10建立的文件stu_list,从中读出第二条学生数据。#include<stdio.h>structstu{charname[10];intnum;intage;charaddr[15];};voidmain(){FILE*fp;structstuboy,*p;charch;inti=1;p=&boy;if((fp=fopen("d:\\stu_list","rb"))==NULL){printf("Cannotopenfilestrikeanykeyexit!");getch();exit(1);}rewind(fp);fseek(fp,i*sizeof(structstu),0);fread(p,sizeof(structstu),1,fp);printf("\n\nname\tnumberageaddr\n");printf("%s\t%5d%7d%s\n",p->name,p->num,p->age,p->addr);}文件stu_list已由例8-9的程序建立,本程序用随机读出的方法读出第二个学生的数据。程序中定义boy为stu类型变量,p为指向boy的指针。以读二进制文件方式打开文件,程序调用rewind(fp)把位置指针复位到文件开头,又调用fseek函数移动文件位置指针。其中起始点为0,表示从文件头开始,i值为1表示移动一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论