📜  c++ 文件处理 - C++ (1)

📅  最后修改于: 2023-12-03 14:59:49.123000             🧑  作者: Mango

C++ 文件处理

在 C++ 中,我们可以通过文件处理来读写文件。文件处理是一种在磁盘上创建、读取、更新和删除数据的方式。

打开文件

在 C++ 中打开文件需要使用 fstream 类型对象。打开文件的方式可以是输入、输出、以及同时输入输出。以下是一些示例:

以输入方式打开文件
#include <fstream>
using namespace std;

int main() {
    ifstream file("example.txt");
    if (!file.is_open()) {
        cout << "Failed to open file." << endl;
    } else {
        // 文件已经成功打开,执行其他操作
    }
    file.close();
    return 0;
}
以输出方式打开文件
#include <fstream>
using namespace std;

int main() {
    ofstream file("example.txt");
    if (!file.is_open()) {
        cout << "Failed to open file." << endl;
    } else {
        // 文件已经成功打开,执行其他操作
    }
    file.close();
    return 0;
}
以输入输出方式打开文件
#include <fstream>
using namespace std;

int main() {
    fstream file("example.txt");
    if (!file.is_open()) {
        cout << "Failed to open file." << endl;
    } else {
        // 文件已经成功打开,执行其他操作
    }
    file.close();
    return 0;
}
写入文件

要将数据写入文件中,我们可以使用 << 运算符将其写入 ofstream 对象。以下示例演示如何写入文本文件:

#include <fstream>
using namespace std;

int main() {
    ofstream file("example.txt");
    if (!file.is_open()) {
        cout << "Failed to open file." << endl;
        return 1;
    }

    file << "Hello, world!" << endl;
    file.close();
    return 0;
}
读取文件

要从文件中读取数据,我们可以使用 >> 运算符将其读入 ifstream 对象。以下示例演示如何从文本文件中读取:

#include <fstream>
#include <iostream>
using namespace std;

int main() {
    ifstream file("example.txt");
    if (!file.is_open()) {
        cout << "Failed to open file." << endl;
        return 1;
    }

    string line;
    while (getline(file, line)) {
        cout << line << endl;
    }
    file.close();
    return 0;
}
文件位置指针

在 C++ 中,每个文件都有一个文件位置指针,该指针指向下一个要读取或写入的位置。使用 seekg()seekp() 函数可以修改文件位置指针。

#include <fstream>
#include <iostream>
using namespace std;

int main() {
    fstream file("example.txt", ios::in | ios::out);
    if (!file.is_open()) {
        cout << "Failed to open file." << endl;
        return 1;
    }

    // 将文件位置指针移动到第 5 个字符处
    file.seekg(4);

    string line;
    getline(file, line);
    cout << line << endl;

    // 将文件位置指针移动到文件的结尾处
    file.seekp(0, ios::end);

    // 写入文本到文件的结尾
    file << "This is a new line." << endl;

    file.close();
    return 0;
}
删除文件

要在 C++ 中删除文件,我们可以使用 remove() 函数。以下是一个示例:

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    if (remove("example.txt") != 0) {
        cout << "Failed to delete file." << endl;
        return 1;
    } else {
        cout << "File deleted successfully!" << endl;
        return 0;
    }
}

以上就是 C++ 文件处理的一些基础内容。开发人员应该熟悉这些技术,并在需要读取或写入文件时使用它们。