>、基于C的文件操作
>一、流式文件操作- {3 |5 [) u' k5 e
>typedef struct {4 q# ? T3 u7 C' p
> FILE这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行,此种文件操作常用的函数见下表 函数 功能
>. s1 m3 L- r2 f: l' r
>1.fopen()
>为使用而打开一个流 8 x5 e/ }9 `5 z
>字符串 含义 7 R& a" N, C; ]! d% {& c' W
> 一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'\n',而二进制模式认为它是两个字符0x0D,0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。</P>2 F2 E3 ~+ _$ [% l5 _
> 系统默认的是以文本模式打开,可以修改全部变量_fmode的值来修改这个设置,例如_fmode=O_TEXT;就设置默认打开方式为文本模式;而_fmode=O_BINARY;则设置默认打开方式是二进制模式。</P>( z r7 c2 X2 |+ t8 g
> 我们也可以在模式字符串中指定打开的模式,如"rb"表示以二进制模式打开只读文件,"w+t"或"wt+"表示以文本模式打开读/写文件。</P>+ y) b0 ?' w3 r" p, |
> 此函数返回一个FILE指针,所以申明一个FILE指针后不用初始化,而是用fopen()来返回一个指针并与一个特定的文件相连,如果成败,返回NULL。</P>4 n8 I& p0 f! s5 f( K$ l9 |
>例:</P>
> FILE *fp; 8 Z4 R: S, R; {) d
>2.fclose() 5 E5 S0 S9 M" X N' O( V5 E
> 在程序结束时一定要记得关闭打开的文件,不然可能会造成数据丢失的情况,我以前就经常犯这样的毛病。</P>
>例:fclose(fp);</P>0 I' W4 V1 ~( W T' B
>3.fputc()
>例:fputc('X',fp);</P> G/ d. V* v7 Q+ h7 q# w. N
>4.fgetc()
>例:char ch1=fgetc(fp);</P>4 X+ ]5 o9 A! t* E
>5. fseek()
>符号常量 值 基准位置 ' R6 l5 @, G# `1 F- \
>例:fseek(fp,1234L,SEEK_CUR);//把读写位置从当前位置向后移动1234字节(L后缀表示长整数)</P>- A8 [6 X* l; H' D
> fseek(fp,0L,2);//把读写位置移动到文件尾</P>) _$ T" L: x" D3 b1 b) j9 h
>6.fputs()
>例:fputs("I Love You",fp);</P>/ v) e) \4 ?2 b. B" W
>7.fgets()$ `" D! D7 p& t" S3 _9 h6 \) j# u1 p
>例:如果一个文件的当前位置的文本如下</P>
>Love ,I Have</P>* j' h+ A2 x' S2 p| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |