二级C 输入输出流:磁盘文件的输入和输出

文章作者 100test 发表时间 2007:03:10 17:11:22
来源 100Test.Com百考试题网


1、 磁盘文件的打开和关闭操作:

磁盘文件的打开和关闭操作一般使用 fstream 类中所定义的成员函数 open() 和 close() 。

⒈打开文件:

步骤:①先说明一个 fstream 类的对象。

•. 用成员函数 open() 打开指定的文件。

打开指定文件的方式(即文件访问方式)

in: 以输入(读)方式打开文件。

Out: 以输出(写)方式打开文件。

App: 以输出追加方式打开文件。

Ate: 文件打开时,文件指针位于文件尾。

Trunc: 如果文件存在,将其长度截断为 0 ,并清除原有内容;如果文件不存在,则创建新文件。

Binary: 以二进制方式打开文件,缺省时为文本文件。

Nocreate: 打开一个已有文件,如该文件不存在,则打开失败。

Noreplace : 如果文件存在,除非设置 ios::ate 或 ios::app, 否则打开操作失败。

Ios::out|ios::binary: 以二进制写方式打开文件。

Ios::in|ios::binary: 以二进制读方式打开文件。

例如: fstream outfile.

outfile.open(“f1.txt”,ios::out).

或也可以这样打开: fstream outfile(“f1.txt”,ios::out).

还可以用下述方法 表示打开某个写文件:

ofstream ostream(“f1.txt”).

或 ofstream ostrm.

ostrm.open(“f1.txt”).

可以用下述方法表示打开某个读文件:

ifstream istrm(“f2.txt”).

或: ifstream istrm.

istrm.open(“f2.txt”).

⒉关闭文件: outfile.close(). 文件流 outfile 被关闭,由它所标识的文件送入磁盘中。

例7:分析下列程序的输出结果:

void main()

{

ostream ostrm.

ostrm.open(“f1.txt”).

ostrm<<120<

ostrm<<310.85<

ostrm.close().

ifstream istrm(“f1.txt”).

int n.

double d.

istrm>>n>>d.

cout<

istrm.close().

}

2、 文本文件的读写操作:

 例8:把文本写入指定的文件中去。

#include

#include

#include

void main()

{

fstream outfile.

ourfile.open(“f2.txt”,ios::out).

if(!outfile)

{

cout<<”f2.dat cannt open.\n”.

abort().

}

outfile<<”this is a program.\n”.

outfile<<”this is a program.\n”.

outfile.close().

}

例9:从文本文件中读取文件信息:

#include

#include

#include

void main()

{

fstream infile.

infile.open(“f2.dat”,ios::in).

if(!infile)

{

cout<<”f2.dat cannt open.\n”.

abort().

}

char s[80].

while (!infile.eof())

{

infile.getline(s,sizeof(s)).

cout<

}

inflie.close().

}

例 10 :使用 get() 和 put() 函数读写文本文件。

#include

#include

#include

#include

void main()

{

fstream outfile,infile.

outfile.open(“f3.dat”,ios::out).

if(!outfile)

{

cout<<”f3.dat cannt open.\n”.

abort().

}

char str[]=”this is a C program.”.

for(int I=0.I<=strlen(str).I )

outfile.put(str[I]).

outfile.close().

inflie.open(“f3.dat”,ios::in).

if(!infile)

{

cout<<”f3.dat”,ios::in).

abort().

}

char ch.

while(infile.get(ch))

cout<

cout<

inflie.close().

}

例 11 : #include

#include

#include

void main()

{

fstream infile,outfile.

inflie.open(f2.dat”,ios::in).

if(!infile)

{

cout<<”f2.dat cannt open.\n”.

abort().

}

outfile.open(“f4.dat”,ios::out).

if(!outfile)

{

cout<<”f4.dat cannt open.\n”.

abort().

}

char ch.

while(infile.get(ch))

outfile.put().

infile.close().

outfile.close().

}

例 12 :二进制文件的读写操作:

#include

#include

#include

struct person

{

char name[20].

double height.

unsigned short age.

}

struct person people[40]={

“Wang”,1.65,25,

“Zhang”,1.74,24,

“Li”,1.89,21,

“Hang”,1.70,22}.

void main()

{

fstream infile,outfile.

outfile.open(“f5.dat”,ios::out|ios::binary).

if(!outfile)

{

cout<<”f5.dat cannt open.\n”.

abort().

}

for(int I=0.I<4.I )

outfile.write((char *)&.people[I],sizeof(people[I])).

outfile.close().


相关文章


黑龙江省高校非计算机专业学生计算机等级考试预测试卷之一
二级C 输入输出流:磁盘文件的输入和输出
二级C 输入输出流:键盘输入
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛