在C言语中,fstream库供给了富强的文件流操纵功能,使得对文件的读写变得简单而高效。fstream库是iostream库的一个扩大年夜,它容许我们同时停止文件的读取跟写入操纵。本文将具体介绍fstream的利用方法,包含创建文件流、打开文件、读写操纵、错误处理等关键技能。
在利用fstream之前,须要包含头文件<fstream>
。
#include <fstream>
可能利用ifstream
、ofstream
或fstream
来创建文件流东西。
ifstream
:用于读取文件。ofstream
:用于写入文件。fstream
:用于读写文件。ifstream fin;
ofstream fout;
fstream file;
利用open
成员函数打开文件。须要指定文件名跟打开形式。
fin.open("input.txt", ios::in);
fout.open("output.txt", ios::out);
file.open("file.txt", ios::in | ios::out);
ios::in
:以读形式打开文件。ios::out
:以写形式打开文件。ios::app
:以追加形式打开文件。ios::ate
:打开文件后,将文件指针定位到文件末端。ios::trunc
:假如文件已存在,则将其截断为0长度。可能组合利用这些形式,比方ios::in | ios::out
表示读写形式。
利用<<
操纵符或write
成员函数写入文件。
fout << "Hello, World!";
fout.write("Hello, World!", 13);
利用>>
操纵符或read
成员函数读取文件。
string line;
while (getline(fin, line)) {
cout << line << endl;
}
利用fail
成员函数检查文件操纵能否成功。
if (fin.fail()) {
cerr << "Error reading file" << endl;
fin.clear(); // 清除错误标记
}
利用close
成员函数封闭文件。
fin.close();
fout.close();
file.close();
以下是一个简单的示例,演示怎样利用fstream读取跟写入文件。
#include <fstream>
#include <iostream>
#include <string>
int main() {
ifstream fin("input.txt");
ofstream fout("output.txt");
if (!fin) {
cerr << "Error opening input file" << endl;
return 1;
}
if (!fout) {
cerr << "Error opening output file" << endl;
return 1;
}
string line;
while (getline(fin, line)) {
fout << line << endl;
}
fin.close();
fout.close();
return 0;
}
经由过程本文的介绍,信赖你曾经控制了C言语中fstream的基本用法。fstream库为文件操纵供给了极大年夜的便利,是C言语编程中弗成或缺的一部分。