1、C+文件操作【例1】 编程将一些字符信息写入指定文本文件中。#include #include /一定要包含此头文件#include void main( ) fstream outfile; /或ofstream outfile; outfile.open(file1.dat,ios:out); if(!outfile) coutfile1.dat cant open.n; abort( ); /下面请注意往文本文件写字符流的语句! outfilethis is a program.n; outfilethis is a string.; outfilenok!; outfile.close
2、( );【例2】 编程序将【例1】中被写入文本文件中的字符信息读出并显示。#include #include #include void main( ) fstream infile; /或ifstream outfile;infile.open(file1.dat,ios:in); if(!infile) coutfile1.dat cant open.n; abort( ); char s80; while(!infile.eof( ) /*用成员函数getline(两个形参)从文本文件读取!*/ infile.getline(s,sizeof(s);coutsendl; infile.c
3、lose( );【例3】 编程使用get( )函数和put( )函数读、写文本文件。特点是一次处理一个字符!#include #include #include #include void main( ) fstream outfile,infile; /或ofstream outfile; ofstream infile; outfile.open(file2.dat,ios:out); if(!outfile) coutfile2.dat cant open.n; abort( ); char s =I love C+ programing.;for(int i=0;i=(int)strl
4、en(s);i+)outfile.put(si); /往文本文件中写一个字符 outfile.close( ); infile.open(file2.dat,ios:in); if(!infile) coutfile2.dat cant open.n; abort( ); char ch; /*下面从文本文件中读取一个字符到字符变量ch中。*/while(infile.get(ch) cout.put(ch); coutendl;infile.close( );【例4】 编程对一个二进制文件进行读/写操作。#include #include #include struct person cha
5、r name80; /姓名 double height; /身高 unsigned short age; /年龄 people5=Ma,1.78,35, Zhang,1.68,24,Hu,1.90,40, Lu,1.89,50,Lang,2.00,18 ;void main( )fstream file;file.open(file4.dat,ios:in|ios:out|ios:binary); if(!file) coutfile4.dat cant open.n; abort( ); for(int i=0;i5;i+)file.write(char*)&peoplei,sizeof(p
6、eoplei); file.seekp(0,ios:beg);for(i=0;i5;i+)file.read(char*)&peoplei,sizeof(peoplei);coutpeoplei.nametpeoplei.heighttpeoplei.ageendl; file.close( );【例5】 按下列要求编写一个程序。 该程序用来将一些大学生和硕士生的有关信息输入后存放在一个文件中。 关于大学生的信息有:姓名,学号,平均成绩。 关于硕士生的信息有:除了大学生应有信息外,再增加一个导师姓名。 将一个大学生和两个硕士生的信息写入程序中,也可从键盘输入。#include #include
7、 #include #include class Student private: char Name80; /姓名 unsigned uID; /学号 double grade; /平均成绩public:Student(char *pN,unsigned num,double g) strcpy(Name,pN); uID=num; grade=g; virtual void Print(ostream &out); friend ostream &operator (ostream &out,Student &st);void Student:Print(ostream &out)outN
8、ame“”uID“ ”gradeendl;ostream& operator(ostream &out,Student &st) st.Print(out); outendl; return out;class Master:public Student private: char dName80; /导师姓名public:Master(char *pN,unsigned num,double g,char *pdN):Student(pN,num,g) strcpy(dName,pdN); void Print(ostream &out); ;void Master:Print(ostrea
9、m &out) Student:Print(out); out dName;void main( )ofstream out(abc.txt);Student s1(Wang ping,99001,96.5);Master s2(Ma guang,99056,84.8,Hu);Masters 3(Jiang fang,99078,90.5,Huang); outs1; outs2; outs3;【例6】 分析下列程序的输出结果,学会随机读/写数据文件的方法。#include #include #include void main( )fstream file(file5.dat,ios:in|
10、ios:out|ios:binary); if(!file) coutfile5.dat cant open.n; abort( ); for(int i=1;i=20;i+) file.write(char *)&i, sizeof(int);long pos=file.tellp( );coutCurrent byte number: posendl; for(i=20;i=50;i+) file.write(char *)&i,sizeof(int); file.seekp(pos); file.read(char *)&i,sizeof(int); coutThe data store
11、d is iendl; 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); coutThe data stored is iendl; file.seekp(116,ios:cur); file.read(char *)&i,sizeof(int); coutThe data stored is iendl; coutCurrent byte number: file.tellp( )endl;【
12、例7】 分析下列程序的输出结果,熟悉成员函数seekp( )的用法。#include #include #include void main( ) struct student char name50; long number; double totalscord; stu5=Ma,98001,89.5,Li,98023,82.9,Gao,98045,90.2, Hu,98066,92.1,Yan,98067,79.5; student s1; fstream file1; file1.open(file6.dat,ios:out|ios:in|ios:binary); if(!file1)
13、coutfile1.dat cant open.n; abort( ); for(int i=0;i5;i+) file1.write(char *)&stui,sizeof(student); file1.seekp(sizeof(student) *4); file1.read(char *)&s1,sizeof(stui); couts1.namets1.numberts1.totalscordendl; file1.seekp(sizeof(student) *1); file1.read(char *)&s1,sizeof(stui); couts1.namets1.numberts1.totalscordendl; file1.close( );
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1