专业编程基础技术教程

网站首页 > 基础教程 正文

C++读写文件的库和类 c++读写文本文件

ccvgpt 2024-12-29 01:51:27 基础教程 2 ℃

这里介绍C++读写文件常用的一库两类(one library two classes)。

一库:指的是<fstream>,从库名可以看出是”文件流“的意思。

C++读写文件的库和类 c++读写文本文件

两类指的是ifstream和ofstream,都是和文件读写相关的类,也可以说是两个流 。

C++语言中,把键盘输入、显示器输出、文件的读写等,都抽象成”流“的概念。

说了这么多,只需要注意一点,这里的文件的库和文件的类,是两个层面的东西,fstream是库层面的东西,对应库里的各种类;而ifstream和ofstream是类层面的东西,对应各自的成员函数和成员变量。

也就是说,要进行文件的读写,就要使用ifstream和ofstream两个常用的类,在程序中就要加一句:#include <fstream>。这就好比C语言编程要用printf()函数时,必须加上#include <stdio.h>,指明函数的出处一样道理。

C++编程一般不建议混合C语言的库及函数,而C++又比C要抽象得多,比如这个读写文件的”流“的概念,就比C语言中文件读写的概念要抽象。因此,为了便于理解,这里总结一下C++文件读写的一般步骤:

1、 声明读写文件的流变量,也就是要创建ifstream/ofstream类的对象。

2、 使用对象的方法open(filename), 来”打开“文件,让文件与创建的对象进行关联。该文件默认与源程序文件处于同一目录下,否则就要包含完整路径。当然,历史原因,文件名filename的格式必须是C风格的字符串,而不是string类风格的,因为string类的出现比较晚。如果文件名是保存在一个string对象中,则需要用c_str( )方法来转换成C风格字符串。

3、 从文件中读或写数据。

4、 关闭文件,解除文件和对象的关联。

下面用代码示范:从硬盘读取一个用户编写的C/C++源文件,并显示在屏幕上。

#include <fstream> //ifstream, ofstream的头文件

#include <iostream> //cout的头文件

#include <string> //getline()的头文件

using namespace std;

int main()

{

ifstream inputFile; //创建一个读文件对象

inputFile.open("C:/C++code/enum.cpp"); //打开一个用户自己写的源文件

string text;

while (!inputFile.eof()) //检测是否到达文件尾部

{

getline(inputFile, text); //从读文件对象(流)中读取一行文本到内存中一个string对象中

cout << text << endl; //把string风格字符串显示到屏幕上

}

inputFile.close(); //关闭文件

return 0;

}

最近发表
标签列表