当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

北京大学:《数据结构与算法》课程教学资源(实习课件PPT)文件操作(文件流技术)

资源类别:文库,文档格式:PDF,文档页数:28,文件大小:495.5KB,团购合买
点击下载完整版文档(PDF)

文件操作 高壮 2007.10

文件操作 高壮 2007.10 2007.10

文件的模式 Binary mod:文件中的每个比特都可以被程 序访问到。比如wav,bmp文件等。 Text mode:存储的格式化的文本,程序所 操作的文本有可能和存储在文件系统中的 内容不一样(与操作平台相关) Read把文件上的回车和换行换成C/C++语 中的回车和换 Write:把C/C++语言中的回车和换行换成文 件中的回车和换行

文件的模式 „ Binary mod Binary mod:文件中的每个比特都可以被程 :文件中的每个比特都可以被程 序访问到。比如 序访问到。比如wav,bmp wav,bmp文件等。 „ Text mode Text mode:存储的格式化的文本,程序所 :存储的格式化的文本,程序所 操作的文本有可能和存储在文件系统中的 操作的文本有可能和存储在文件系统中的 内容不一样(与操作平台相关) 内容不一样(与操作平台相关) „ Read: 把文件上的回车和换行换成 把文件上的回车和换行换成C/C++语 言中的回车和换行 言中的回车和换行 . „ Write: 把C/C++语言中的回车和换行换成文 语言中的回车和换行换成文 件中的回车和换行 件中的回车和换行

文件的模式 MS-DOS text file Rebecca clutched therin jewel encrusted scarablrin o her heaving bosun. rin I Rebecca clutched thelr\n Rebecca clutched the\n jewel encrusted scarab\n jewel-encrusted scarabln ITo her heaving bosun rln ITo her heaving bosun.n Binary mode in C Text mode in C

文件的模式 Rebecca clutched the\r\n jewel_encrusted scarab\r\n To her heaving bosun.\r\n ^Z Rebecca clutched the\r\n jewel_encrusted scarab\r\n To her heaving bosun.\r\n ^Z Rebecca clutched the\n jewel_encrusted scarab\n To her heaving bosun.\n Binary mode in C Text mode in C MS-DOS text file

C语言的文件操作 在C语言中,文件的操作和结构体FILE有不可分 割的作用 些常用的文件操作函数: FILE fopen(const char filename, const char openmode) Size_t fwrite(const void* data, size_t size, size_t len, FILE X fp) size-t fread(void* date, size_t size, size _t len, FILE fp); int fprintf(FILE fp, const char format,. int fscanf(FILE fp, const char K format,; int putc(int C, FILE fp); int getc( FILE * fp); a int fclose(File fp)

C语言的文件操作 语言的文件操作 „ 在C语言中,文件的操作和结构体 语言中,文件的操作和结构体FILE有不可分 割的作用. „ 一些常用的文件操作函数: 一些常用的文件操作函数: „ FILE * fopen(const fopen(const char * filename, const char * char * filename, const char * openmode openmode); „ size_t fwrite(const fwrite(const void * data, void * data, size_t size, size_t len, FILE * , FILE * fp); „ size_t fread(void fread(void * date, * date, size_t size , size_t len , FILE * , FILE * fp); „ int fprintf(FILE fprintf(FILE * fp, const char * format, ...); , const char * format, ...); „ int fscanf(FILE fscanf(FILE * fp, const char * format, ...); , const char * format, ...); „ int putc( int c, FILE * c, FILE * fp); „ int getc( FILE * ( FILE * fp); „ int fclose(FILE fclose(FILE * fp);

C语言的文件操作 些常用的文件定位函数 long stelle FILE * tp It fseek (FILE fp, long offset, int origin) int fgetpos( FILE fp, fpos_t*cur) int fsetpos(FILE * fp const fpos_t*cur); ■例子 fseek(fp,9 SEEK CUR;表示从当前位置向后移动9个字 符其中 SEEK CUR1 SEEK END2 SEEK SET0) ■ fpos t cur; getpos(f,&cm得到当前的文件位置, 可以通过 fsetpos(pcu设置印p的读写位置。cur实际上是 nt64,所以可以对其运算,比如cur++;

C语言的文件操作 语言的文件操作 „ 一些常用的文件定位函数: 一些常用的文件定位函数: „ long ftell(FILE ftell(FILE *fp) „ int fseek(FILE fseek(FILE * fp, long offset, , long offset, int origin); origin); „ int fgetpos(FILE fgetpos(FILE * fp, fpos_t *cur); „ int fsetpos(FILE fsetpos(FILE * fp const fpos_t *cur); „ 例子: „ fseek(fp,9,SEEK_CUR); fseek(fp,9,SEEK_CUR);表示从当前位置向后移动 表示从当前位置向后移动9个字 符;(其中SEEK_CUR 1;SEEK_END 2;SEEK_SET 0 SEEK_CUR 1;SEEK_END 2;SEEK_SET 0) „ fpos_t cur; cur; fgetpos(fp,&cur fgetpos(fp,&cur);得到当前的文件位置, 得到当前的文件位置, 可以通过fsetpos(fp,cur fsetpos(fp,cur)设置fp的读写位置。cur实际上是 int64,所以可以对其运算,比如 ,所以可以对其运算,比如cur++;

C语言的打开文件操作 FILE *fopen const char filename, const char 米m0d) 参数 a filename ■文件名 ■me ■打开的模式,权限,格式 ■ Return value ■返回一个指向打开的文件的指针,如果打开文件错 误,则返回NUIL

C语言的打开文件操作 语言的打开文件操作 „ FILE *fopen( const ( const char *filename filename, const char *mode ); „ 参数 „ filename filename „ 文件名 „ mode „ 打开的模式,权限,格式 打开的模式,权限,格式 „ Return Value Return Value „ 返回一个指向打开的文件的指针,如果打开文件错 返回一个指向打开的文件的指针,如果打开文件错 误,则返回NULL

文件的读写模式 打开一个文件用于读取数据,如果文件不存在,则打开失败,返回 ■打开一个文件用来写入数据,如果文件不存在,则创建新文件,如果文 件存在,则清空原始文件 ■打开一个文件用于追加数据,如果文件不存在,则创建新文件 ■"r+ 打开一个文件进行读写,如果文件不存在,则打开失败,返回NULL 红于则菇棒?:如果文件不存在,则创建新文件,如果文件存 a 开一个文件用来读取或者追加数据,如果文件不存在,则创建新文

文件的读写模式 文件的读写模式 „ "r" „ 打开一个文件用于读取数据,如果文件不存在,则打开失败,返回 NULL。 „ "w" „ 打开一个文件用来写入数据,如果文件不存在,则创建新文件,如果文 件存在,则清空原始文件!!!。 „ "a" „ 打开一个文件用于追加数据,如果文件不存在,则创建新文件。 „ "r+" „ 打开一个文件进行读写,如果文件不存在,则打开失败,返回NULL。 „ "w+" „ 打开一个文件进行读写,如果文件不存在,则创建新文件,如果文件存 在,则清空原始文件!!!。 „ "a+" „ 打开一个文件用来读取或者追加数据,如果文件不存在,则创建新文 件

文件的打开格式 ■以文本格式打开文件。 b ■以2进制的方式打开文件。不对文件的回车和换 行进行转换。 汪 t/b标签必须放在r/w/a的后面。 FIE*fp= fopen( test. txt,wt");正确 FIE*fp= fopen( test. txt";tw”);错误

文件的打开格式 文件的打开格式 „ t „ 以文本格式打开文件。 以文本格式打开文件。 „ b „ 以 2进制的方式打开文件。不对文件的回车和换 进制的方式打开文件。不对文件的回车和换 行进行转换。 „ 注意: „ t/b标签必须放在r/w/a的后面。 „ FILE *fp =fopen( “test.txt test.txt”,“wt ”);正确 „ FILE *fp =fopen( “test.txt test.txt”,“tw ”);错误

C文件操作示例 #includes stdio.h> #include int mainO FILE fp=fopen("test. txt", w+t); printf( erroe on openning!\n return-1 char strs/Ir This is the test line fwrite(str, sizeof(char), strlen(str), p) fpr printf(p, print=%/os",str)

C文件操作示例 „ #include „ #include „ int main() „ { „ FILE *fp=fopen("test.txt","w+t fopen("test.txt","w+t"); „ if(!fp) „ { „ printf("erroe printf("erroe on openning! openning!\n"); „ return -1; „ } „ char * str="This is the test line"; ="This is the test line"; „ fwrite(str,sizeof(char),strlen(str),fp fwrite(str,sizeof(char),strlen(str),fp); „ fprintf(fp,"print fprintf(fp,"print= %s",str);

C文件操作示例(续) a fseek(p, O,SEEK_SET) har str2100,st:3{1001 size_t len=fread(str2, sizeof(char), strlen(str), fp) str2[]='\ fscanf(fp, print=%os",str3) printf("%/os(n%os\n", str2, str3) fclose(tp) return o

C文件操作示例(续) 文件操作示例(续) „ fseek(fp,0,SEEK_SET); fseek(fp,0,SEEK_SET); „ char str2[100],str3[100]; char str2[100],str3[100]; „ size_t len=fread(str2,sizeof(char),strlen(str),fp); =fread(str2,sizeof(char),strlen(str),fp); „ str2[len]=' str2[len]='\0'; „ fscanf(fp,"print fscanf(fp,"print = %s",str3); = %s",str3); „ printf("%s printf("%s\n%s\n",str2,str3); n",str2,str3); „ fclose(fp fclose(fp); „ return 0; return 0; „ }

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共28页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有