C++文件操作
C++中的另一个标准库fstream
,定义了三个数据类型!
数据类型 | 描述 |
---|---|
ofstream | 该数据类型表示输出文件流,用于创建文件并且向文件中写入信息 |
ifstream | 该数据类型表示输入文件流,用于从文件中读取信息 |
fstream | 改数据类型通常表示文件流,且同时具有ofstream ifstream 俩种功能 |
在C++中,fstream
可以创建文件,向文件内写入信息,也可以从文件内读取信息。
若想在C++中进行文件处理,必须加上头文件<iostream>
<fstream>
。
-
打开文件
从文件中读取信息或者向文件中写入信息之前,必须先打开文件,ofstream
fstream
对象均可以用于打开文件进行写的操作。若是只需要打开文件进行读的操作,在只需要使用ifstream
对象。 - 实例
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fp;
fp.open("123.txt");//文件打开
}
void open(const char *filename, ios::openmode mode);
第一参数是指定要打开文件的名称以及位置,第二参数是用来定义文件被打开的模式。
模式标志 | 描述 |
---|---|
ios::app | 追加模式,所有写入的数据都追加到文件末尾 |
ios::ate | 文件打开以后定义到文件末尾 |
ios::in | 打开文件用于读取 |
ios::out | 打开文件用于写入 |
ios::trunc | 若该文件存在,其内容在打开文件前被截断,即把文件长度设为0。(移除原文件内容,不存在时不会自创文件) |
- 实例
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fp;
fp.open("123.txt",ios::app);//以追加方式打开文件
}
-
关闭文件
当C++的程序运行终止的时候,会自动关闭文件刷新所有流,释放所有被分配的空间,关闭所有打开文件,但是我们写程序的时候应该养成良好的习惯,为了避免资源的浪费,我们需要自己再程序截止之前手动关闭文件!
void close();
- 实例
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fp;
fp.open("123.txt",ios::app);
fp.close();//关闭文件
}
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fp;
fp.open("123.txt",ios::app);//文件以追加方式打开
fp << "这个代码真帅!" << endl;//文件在末尾数据追加了一段话,这个代码真帅!
fp.close();
}
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string place;//定义一个string类型变量place
ifstream fp;
fp.open("123.txt", ios::in);//以读取文件的方式打开文件
fp >> place;//从文件内读取数据,并且赋值给place
cout << place << endl;//因string变量,所以遇到空格和换行会截止,故在屏幕上输出这个代码真帅!
}