文件操作 高壮 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++;