李长河 (教授)

教授 博士生导师 硕士生导师

曾获荣誉:湖北省自然科学三等奖

性别:男

毕业院校:莱斯特大学

学历:研究生(博士)毕业

学位:工学博士学位

所在单位:自动化学院

职务:Professor

学科:自动化

办公地点:中国地质大学(武汉)自动化学院710室,湖北省武汉市洪山区鲁磨路388号

联系方式:027-8717 5083

Email:

实验六 文本文件的简单应用


一.实验目的

(1)学会将程序运行的结果存入文本文件

(2)学会从文本文件中读取数据,并进行运算。

 二.实验内容

1.范例:修改实验五中的第二题,求出水仙花数后不是在屏幕上显示而是存入文本文件。请在退出程序后,用记事本打开该文本文件,查看结果。

【分析】(使用文件的格式)

(1)首先,说明一个文件流对象(内部文件)。文件流类型ifstream支持从输入文件中提取数据的操作,

而文件流类型ofstream用于完成将数据写入输出文件中各种操作。

ifstream ifile ;//定义文件输入流对象ifile
  ofstream ofile ;  ///定义文件输出流对象ofile
  特别注意:输入文件用于读操作,输出文件用于写操作。

(2)然后打开文件。在文件流对象和磁盘文件名之间建立联系。

ifile.open(“my_in_file.txt”);
 ofile.open(“my_out_file.txt”);

(3)对文件进行读/写操作。可以使用C++的提取运算符(>>)和插入运算符(<<)进行,

也可以使用读字符的get( )函数和读字符串的getline( )函数。

读写文件时,使用输出文件(如ofile)代替cout,用输入文件(如 ifile)代替cin。

(4)最后关闭文件。

ifile.close( );
 Ofile.close( );
 关闭文件时,系统把与该文件相关联的文件缓冲区中的数据写到磁盘文件中,保证文件的完整性;

同时把磁盘文件名与文件流对象之间的关联断开,可防止误操作修改了磁盘文件。

【程序】

 2.范例:编程从上题生成的文本文件读取水仙花数,并显示在屏幕上。
【程序】

 

【思考】

(1)本程序在读到文件的结束符之前,先读了一个空串,所以输出时多了一个空行。能去掉该空行吗?请试试。

(2)请尝试使用别的方法对文件进行读/写操作。

 

3. 编写程序求500 以内的勾股弦数,即满足 c2=b2+a2(2为指数)的3个数,要求b>a。将所有符合要求的组合存入文本文件中。

 

4.编写程序从上题建立的文本文件中读取500以内的勾股弦数并显示在屏幕上。