>在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:</P>0 b3 T; U: g: A# W( o
>1、插入器(<<)
>2、析取器(>>)) q# j( s P: y* J) A. d
> 在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。</P>
>一、打开文件* v( ^1 t1 J' ^* y0 R
>void open(const char* filename,int mode,int access);</P>
>参数:</P>
>filename: 要打开的文件名 $ s3 x( N0 |$ [$ e
>ios::app: 以追加的方式打开文件
ut: 文件以输出方式打开 " o4 i2 s. B( O* t) p
ut|ios::binary</P>) n, S) @+ ]1 M* P" @6 s! z2 n
> 打开文件的属性取值是:</P>
>0:普通文件,打开访问 # Q9 i o7 i# i* s1 ~5 Q6 K
> 例如:以二进制输入方式打开文件c:\config.sys </P>
> fstream file1;, _0 c1 ~+ K$ ~
> 如果open函数只有文件名一个参数,则是以读/写普通文件打开,即:</P>$ k3 O; |( ~! G2 u5 C
> file1.open("c:\\config.sys");<=>file1.open("c:\\config.sys",ios::in|ios:
ut,0);</P>
> 另外,fstream还有和open()一样的构造函数,对于上例,在定义的时侯就可以打开文件了:</P>
> fstream file1("c:\\config.sys");</P>5 K- K$ k* [, q8 R4 s$ X2 k
> 特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu file stream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。</P>( T- f2 {" O0 ` s+ b
> ifstream file2("c:\\pdos.def");//以输入方式打开文件
> 所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义。</P>
>二、关闭文件! l+ j2 Y Z1 a% x, L
>三、读写文件
> 1、文本文件的读写
> file2<<"I Love You";//向文件写入字符串"I Love You"
> 这种方式还有一种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些</P>
>操纵符 功能 输入/输出
> 比如要把123当作十六进制输出:file1<<hex<<123;要把3.1415926以5位精度输出:file1<<setpxecision(5)<<3.1415926。</P>3 J7 J, W2 K) S( i
> 2、二进制文件的读写
>②get()
> 一种就是和put()对应的形式:ifstream &get(char &ch);功能是从流中读取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如file2.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。</P>7 D, p" z7 P J9 `9 V9 U% i5 w. a! H| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |