>在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:</P>
>1、插入器(<<). Q3 V9 D2 X9 x. E
>2、析取器(>>)2 P, u# Y7 f; A2 }
> 在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。</P>
>一、打开文件- u" f3 s3 e2 s4 g- b5 s
>void open(const char* filename,int mode,int access);</P>/ w" c( o+ `. ?( C+ x
>参数:</P>
>filename: 要打开的文件名
>ios::app: 以追加的方式打开文件
ut: 文件以输出方式打开
ut|ios::binary</P>% f% x: [2 n6 x" s. S1 P5 ?
> 打开文件的属性取值是:</P>
>0:普通文件,打开访问 4 g+ X3 R! l7 T
> 例如:以二进制输入方式打开文件c:\config.sys </P>
> fstream file1;
> 如果open函数只有文件名一个参数,则是以读/写普通文件打开,即:</P>9 ]% p$ A- n w* h# z4 n9 p3 e
> file1.open("c:\\config.sys");<=>file1.open("c:\\config.sys",ios::in|ios:
ut,0);</P>
> 另外,fstream还有和open()一样的构造函数,对于上例,在定义的时侯就可以打开文件了:</P>7 l- q9 k' O( K. s7 a
> fstream file1("c:\\config.sys");</P>) Q1 Z$ R: T n6 ?/ C- V9 H
> 特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu file stream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。</P>! @& u5 Z3 ^8 D" K5 y7 U
> ifstream file2("c:\\pdos.def");//以输入方式打开文件
> 所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义。</P>" ^9 O3 o9 k( D0 q% {3 F$ q
>二、关闭文件) O$ @" B$ V4 U& x3 E
>三、读写文件
> 1、文本文件的读写8 V2 K; ]- q. P. i8 M6 m
> file2<<"I Love You";//向文件写入字符串"I Love You"
> 这种方式还有一种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些</P>
>操纵符 功能 输入/输出 0 A/ C" s8 n! X" L5 n
> 比如要把123当作十六进制输出:file1<<hex<<123;要把3.1415926以5位精度输出:file1<<setpxecision(5)<<3.1415926。</P>
> 2、二进制文件的读写
>②get() M# Y% G& K- g& V i' U% P
> 一种就是和put()对应的形式:ifstream &get(char &ch);功能是从流中读取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如file2.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。</P>& n% b6 h; s0 @3 h" }! ^3 U" m$ K| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |