文件处理:C++的fstream类
- 基本操作
- 读写文件
ifstream 读取文件 —— 可使用 >>、getline()
ofstream 写入文件 —— 可使用 <<、write()
fstream 支持读、写双向操作
- 定位文件
- 检测状态
isopen()
fail()
eof()
good()
- 示例
文件的打开与关闭
打开写入关闭示例代码(cpp)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #include <iostream> #include <fstream> #include <string>
using ll = long long; using d = double; using namespace std;
int main() { fstream myfile; myfile.open("test.txt",ios::out);
myfile<<"Hello, World!"<<endl;
myfile.close();
cout<<"文件操作完成!"<<endl;
return 0; }
|
## 打开模式说明:下面时使用表格展示打开模式的说明示例:
| 模式 | 说明 |
| --- | --- |
| std::ios::in | 以读的方式打开文件 |
| std::ios::out | 以写的方式打开文件,如果文件不存在则创建文件 |
| std::ios::app | 以追加的方式打开文件,写入内容会追加到文件末尾 (append) |
| std::ios::ate | 以读写的方式打开文件,文件指针位于文件末尾 (at end) |
| std::ios::binary | 以二进制的方式打开文件 |
多个模式之间用“ | ”运算符连接,例如:
1 2
| fstream binaryFile("binary.bin", ios::in | ios::out | ios::binary);
|

如果文件不使用close()关闭会有什么问题?
1、资源泄露:每次打开文件都会分配一些系统资源,如果不及时关闭文件,可能会导致资源泄露,最终可能会耗尽系统资源,导致程序崩溃。
2、文件锁定:如果文件被打开但未关闭,其他程序可能无法访问该文件,因为它可能被锁定。这会导致其他程序无法读取或写入该文件,影响系统的正常运行。
3、数据不稳定:未关闭的文件可能会导致数据不稳定,因为数据可能未完全写入文件,或者文件指针未正确更新。这可能会导致数据丢失或文件损坏。
文件的写操作
文件的写操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| #include <iostream> #include <fstream> #include <string>
using ll = long long; using d = double; using namespace std;
int main() { fstream fobj("a.txt",ios::out);
if(!fobj.is_open()){ cout<<"文件还没有打开,并不能操作"<<endl; }
char mydata[]="卧类格斗"; fobj.write(mydata,sizeof(mydata));
fobj.close();
cout<<"finish"<<endl; return 0; }
|
文件的读操作
文件的读操作
Author:
Lyxy-szs
Permalink:
http://lyxy-szs.github.io/2026/03/08/read-file/
Slogan:
永远相信美好的事情即将發生?