我的第一本C++书

游历C++世界的地图

C++程序读写文件

更多来自:http://imcc.blogbus.com

2.2.3 读写文件

在这段程序中,我们首先创建了一个输入文件流ifstream的对象fin,并利用它的构造函数将其连接到一个文本文件Date.txt。所谓构造函数,就是这个对象创建的时候所执行的函数。这里,我们使用“Date.txt”作为参数来调用这个构造函数,实际上就是使用这个文件创建fin对象。除此之外,我们还可以使用fin所提供的open()函数来打开一个文件。当我们利用fin成功打开一个文件之后,就可以利用提取符“>>”从fin中提取各种数据。“>>”会以空格为分隔符逐个从文件中读取数据并将其保存到相应的数据变量中。例如,如果文件中的内容如下:

用户输入的当前日期是:

1983 7 3

默认情况下,fin总是从文件的开始部分进行读取的,为了直接读取第二行的内容,我们使用“fin.ignore(256,'\n');”忽略了第一行的内容,将读取位置跳转到第二行。然后,通过提取符“>>”,我们将第二行用空格分割的三个数据分别提取并保存到了三个变量中。

同样,为了将数据写入文件,我们需要创建一个输出文件流ofstream的对象fout,然后通过它的构造函数或者是open()函数来打开一个文件,将这个文件和fout对象连接起来,然后通过插入符“<<”将数据插入到fout对象,也就实现了将数据写入到它所关联的文件中的目的。整个过程如下图2-9所示:

clip_image002

图2-9 文件读写

posted on 2011-07-11 09:43 陈良乔——《我的第一本C++书》 阅读(2005) 评论(2)  编辑 收藏 引用

Feedback

# re: C++程序读写文件 2011-07-11 15:02 somenone

256这个假设不好,可以用 numeric_limits<streamsize>::max 试试  回复  更多评论   

# re: C++程序读写文件 2011-07-11 16:55 陈良乔——《我的第一本C++书》

@somenone
谢谢你的建议,非常好:)
  回复  更多评论   



只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理