>、基于C的文件操作
>一、流式文件操作
>typedef struct {
> FILE这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行,此种文件操作常用的函数见下表 函数 功能 0 Y% |$ f& M$ ^9 ?+ l
>+ x& @8 G$ d$ J7 N" J2 o/ M
>1.fopen()1 Z8 j( P h$ _4 |$ c
>为使用而打开一个流
>字符串 含义
> 一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'\n',而二进制模式认为它是两个字符0x0D,0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。</P>$ d0 Z- S' b& w( F. U
> 系统默认的是以文本模式打开,可以修改全部变量_fmode的值来修改这个设置,例如_fmode=O_TEXT;就设置默认打开方式为文本模式;而_fmode=O_BINARY;则设置默认打开方式是二进制模式。</P>) Q9 M c! p v. t
> 我们也可以在模式字符串中指定打开的模式,如"rb"表示以二进制模式打开只读文件,"w+t"或"wt+"表示以文本模式打开读/写文件。</P>
> 此函数返回一个FILE指针,所以申明一个FILE指针后不用初始化,而是用fopen()来返回一个指针并与一个特定的文件相连,如果成败,返回NULL。</P>
>例:</P>7 r, K" [1 Z5 v9 `! g$ q$ _- c
> FILE *fp;
>2.fclose() 3 D5 k+ `4 K% E; f O8 F0 G
> 在程序结束时一定要记得关闭打开的文件,不然可能会造成数据丢失的情况,我以前就经常犯这样的毛病。</P>
>例:fclose(fp);</P>
>3.fputc()9 y$ t7 k& Q9 q2 |
>例:fputc('X',fp);</P>6 D- V: L- `0 d8 g- M2 K
>4.fgetc()
>例:char ch1=fgetc(fp);</P>6 a- J3 A) Q" c. g1 u( {5 m
>5. fseek()
>符号常量 值 基准位置
>例:fseek(fp,1234L,SEEK_CUR);//把读写位置从当前位置向后移动1234字节(L后缀表示长整数)</P>, @: L/ |' R9 I) [$ g0 V- q
> fseek(fp,0L,2);//把读写位置移动到文件尾</P>
>6.fputs()' q5 O7 N4 Q7 O- M
>例:fputs("I Love You",fp);</P>; U0 n/ O5 X9 }! O8 m4 e% [: e1 o
>7.fgets()* J% s" c2 i5 O+ ]4 R* h
>例:如果一个文件的当前位置的文本如下</P>
>Love ,I Have</P>| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |