C++文件操作.docx

上传人:b****5 文档编号:4713817 上传时间:2022-12-07 格式:DOCX 页数:8 大小:16.29KB
下载 相关 举报
C++文件操作.docx_第1页
第1页 / 共8页
C++文件操作.docx_第2页
第2页 / 共8页
C++文件操作.docx_第3页
第3页 / 共8页
C++文件操作.docx_第4页
第4页 / 共8页
C++文件操作.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

C++文件操作.docx

《C++文件操作.docx》由会员分享,可在线阅读,更多相关《C++文件操作.docx(8页珍藏版)》请在冰豆网上搜索。

C++文件操作.docx

C++文件操作

【例1】编程将一些字符信息写入指定文本文件中。

#include

#include//一定要包含此头文件

#include

voidmain()

{

fstreamoutfile;//或ofstreamoutfile;

outfile.open("file1.dat",ios:

:

out);

if(!

outfile)

{

cout<<"file1.datcan'topen.\n";

abort();

}

//下面请注意往文本文件写字符流的语句!

outfile<<"thisisaprogram.\n";

outfile<<"thisisastring.";

outfile<<"\nok!

";

outfile.close();

}

 

【例2】编程序将【例1】中被写入文本文件中的字符信息读出并显示。

#include

#include

#include

voidmain()

{

fstreaminfile;//或ifstreamoutfile;

infile.open("file1.dat",ios:

:

in);

if(!

infile)

{

cout<<"file1.datcan'topen.\n";

abort();

}

chars[80];

while(!

infile.eof())

{

/*用成员函数getline(两个形参)从文本文件读取!

*/

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

cout<

}

infile.close();

}

【例3】编程使用get()函数和put()函数读、写文本文件。

特点是一次处理一个字符!

#include

#include

#include

#include

voidmain()

{

fstreamoutfile,infile;

//或ofstreamoutfile;ofstreaminfile;

outfile.open("file2.dat",ios:

:

out);

if(!

outfile)

{

cout<<"file2.datcan'topen.\n";

abort();

}

chars[]="IloveC++programing.";

for(inti=0;i<=(int)strlen(s);i++)

outfile.put(s[i]);//往文本文件中写一个字符

outfile.close();

infile.open("file2.dat",ios:

:

in);

if(!

infile)

{

cout<<"file2.datcan'topen.\n";

abort();

}

charch;

/*下面从文本文件中读取一个字符到字符变量ch中。

*/

while(infile.get(ch))

cout.put(ch);

cout<

infile.close();

}

 

【例4】编程对一个二进制文件进行读/写操作。

#include

#include

#include

structperson

{

charname[80];//姓名

doubleheight;//身高

unsignedshortage;//年龄

}people[5]={"Ma",1.78,35,

"Zhang",1.68,24,

"Hu",1.90,40,

"Lu",1.89,50,

"Lang",2.00,18};

voidmain()

{

fstreamfile;

file.open("file4.dat",ios:

:

in|ios:

:

out|ios:

:

binary);

if(!

file)

{

cout<<"file4.datcan'topen.\n";

abort();

}

for(inti=0;i<5;i++)

file.write((char*)&people[i],sizeof(people[i]));

file.seekp(0,ios:

:

beg);

for(i=0;i<5;i++)

{

file.read((char*)&people[i],sizeof(people[i]));

cout<

}

file.close();

}

 

【例5】按下列要求编写一个程序。

①该程序用来将一些大学生和硕士生的有关信息输入后存放在一个文件中。

②关于大学生的信息有:

姓名,学号,平均成绩。

③关于硕士生的信息有:

除了大学生应有信息外,再增加一个导师姓名。

④将一个大学生和两个硕士生的信息写入程序中,也可从键盘输入。

#include

#include

#include

#include

classStudent

{private:

charName[80];//姓名

unsigneduID;//学号

doublegrade;//平均成绩

public:

Student(char*pN,unsignednum,doubleg)

{

strcpy(Name,pN);

uID=num;

grade=g;

}

virtualvoidPrint(ostream&out);

friendostream&operator<<(ostream&out,Student&st);

};

voidStudent:

:

Print(ostream&out)

{

out<

}

ostream&operator<<(ostream&out,Student&st)

{

st.Print(out);

out<

returnout;

}

classMaster:

publicStudent

{private:

chardName[80];//导师姓名

public:

Master(char*pN,unsignednum,doubleg,char*pdN):

Student(pN,num,g)

{

strcpy(dName,pdN);

}

voidPrint(ostream&out);

};

voidMaster:

:

Print(ostream&out)

{

Student:

:

Print(out);

out<<""<

}

voidmain()

{

ofstreamout("abc.txt");

Students1("Wangping",99001,96.5);

Masters2("Maguang",99056,84.8,"Hu");

Masters3("Jiangfang",99078,90.5,"Huang");

out<

out<

out<

}

【例6】分析下列程序的输出结果,学会随机读/写数据文件的方法。

#include

#include

#include

voidmain()

{

fstreamfile("file5.dat",ios:

:

in|ios:

:

out|ios:

:

binary);

if(!

file)

{

cout<<"file5.datcan'topen.\n";

abort();

}

for(inti=1;i<=20;i++)

file.write((char*)&i,sizeof(int));

longpos=file.tellp();

cout<<"Currentbytenumber:

"<

for(i=20;i<=50;i++)

file.write((char*)&i,sizeof(int));

file.seekp(pos);

file.read((char*)&i,sizeof(int));

cout<<"Thedatastoredis"<

file.seekg(0,ios:

:

beg);

for(i=50;i<=100;i++)

file.write((char*)&i,sizeof(int));

file.seekg(pos);

file.read((char*)&i,sizeof(int));

cout<<"Thedatastoredis"<

file.seekp(116,ios:

:

cur);

file.read((char*)&i,sizeof(int));

cout<<"Thedatastoredis"<

cout<<"Currentbytenumber:

"<

}

 

【例7】分析下列程序的输出结果,熟悉成员函数seekp()的用法。

#include

#include

#include

voidmain()

{

structstudent

{

charname[50];

longnumber;

doubletotalscord;

}

stu[5]={"Ma",98001,89.5,"Li",98023,82.9,"Gao",98045,90.2,

"Hu",98066,92.1,"Yan",98067,79.5};

students1;

fstreamfile1;

file1.open("file6.dat",ios:

:

out|ios:

:

in|ios:

:

binary);

if(!

file1)

{

cout<<"file1.datcan'topen.\n";

abort();

}

for(inti=0;i<5;i++)

file1.write((char*)&stu[i],sizeof(student));

file1.seekp(sizeof(student)*4);

file1.read((char*)&s1,sizeof(stu[i]));

cout<

file1.seekp(sizeof(student)*1);

file1.read((char*)&s1,sizeof(stu[i]));

cout<

file1.close();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1