C++ 文件操作(fstream)
C++ 文件操作是 C++ 编程语言中的一种基本操作,它允许开发者对文件进行读写、创建、删除等操作。fstream 是 C++ 中的一个类库,提供了三个类:ifstream、ofstream 和 fstream,分别用于从文件读取、向文件写入和打开文件供读写。
fstream 类
fstream 类是 C++ 中的一个基本类,提供了对文件的读写操作。它有三个子类:ifstream、ofstream 和 fstream。
* ifstream 类:用于从文件读取数据。
* ofstream 类:用于向文件写入数据。
* fstream 类:用于打开文件供读写。
文件打开模式
在使用 fstream 类时,需要指定文件打开模式。常见的文件打开模式有:
* ios::in:读模式。
* ios::out:写模式。
* ios::app:从文件末尾开始写。
* ios::binary:二进制模式。
* ios::nocreate:打开一个文件时,如果文件不存在,不创建文件。
* ios::noreplace:打开一个文件时,如果文件不存在,创建该文件。
* ios::trunc:打开一个文件,然后清空内容。
* ios::ate:打开一个文件时,将位置移动到文件尾。
文件指针位置
在 C++ 中,文件指针位置是非常重要的。我们可以使用 seekg() 函数来设置文件指针的位置。常见的文件指针位置有:
* ios::beg:文件头。
* ios::end:文件尾。
* ios::cur:当前位置。
例如:
* file.seekg(0, ios::beg);// 让文件指针定位到文件开头。
* file.seekg(0, ios::end);// 让文件指针定位到文件末尾。
* file.seekg(10, ios::cur);// 让文件指针从当前位置向文件末方向移动 10 个字节。
* file.seekg(-10, ios::cur);// 让文件指针从当前位置向文件开始方向移动 10 个字节。
* file.seekg(10, ios::beg);// 让文件指针定位到离文件开头 10 个字节的位置。
错误判断方法
在使用 fstream 类时,需要判断文件是否打开成功。常见的错误判断方法有:
* good():如果文件打开成功。
* bad():打开文件时发生错误。
* eof():到达文件尾。
实例
以下是一个简单的文件写入和读取示例:
写入文件
```cpp
#include<iostream>
#include<fstream>
using namespace std;
void main()
{
ofstream in;
in.open("com.txt", ios::trunc); // ios::trunc 表示在打开文件前将文件清空
int i;
char a = 'a';
for (i = 1; i <= 26; i++) // 将 26 个数字及英文字母写入文件
{
if (i < 10)
{
in << "0" << i << "\t" << a << "\n";
a++;
}
else
{
in << i << "\t" << a << "\n";
a++;
}
}
in.close(); // 关闭文件
}
```
打开 com.txt,效果如下:
读取文件
以下是一个简单的文件读取示例:
```cpp
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
void main()
{
ifstream in;
in.open("com.txt"); // 打开文件
string line;
while (getline(in, line)) // 读取文件每行内容
{
cout << line << endl; // 输出文件每行内容
}
in.close(); // 关闭文件
}
```
这只是一个简单的文件读取示例,实际上还可以使用其他方法来读取文件。