doc/notebook/docs/C++/2.fstream.md

2.7 KiB

  1. std::ifstream: 用于从文件中读取数据的输入流对象。常用的成员函数包括:

    • open(const char* filename): 打开指定文件名的文件。
    • close(): 关闭文件。
    • is_open(): 判断文件是否已经打开。
    • good(): 判断文件流状态是否良好。
    #include <fstream>
    #include <iostream>
    
    int main() {
        std::ifstream inputFile;
        inputFile.open("input.txt");
    
        if (inputFile.is_open()) {
            std::cout << "File opened successfully." << std::endl;
            // 读取文件内容
            std::string line;
            while (std::getline(inputFile, line)) {
                std::cout << line << std::endl;
            }
            inputFile.close();
        } else {
            std::cerr << "Unable to open file." << std::endl;
        }
    
        return 0;
    }
    
  2. std::ofstream: 用于向文件中写入数据的输出流对象。常用的成员函数包括:

    • open(const char* filename): 创建或打开指定文件名的文件。
    • close(): 关闭文件。
    • is_open(): 判断文件是否已经打开。
    • good(): 判断文件流状态是否良好。
    #include <fstream>
    #include <iostream>
    
    int main() {
        std::ofstream outputFile;
        outputFile.open("output.txt");
    
        if (outputFile.is_open()) {
            std::cout << "File opened successfully." << std::endl;
            // 写入数据到文件
            outputFile << "Hello, world!" << std::endl;
            outputFile << 42 << std::endl;
            outputFile.close();
        } else {
            std::cerr << "Unable to open file." << std::endl;
        }
    
        return 0;
    }
    
  3. std::fstream: 同时支持读写操作的文件流对象。常用的成员函数包括:

    • open(const char* filename, std::ios_base::openmode mode): 打开指定文件名的文件,并指定打开模式(例如std::ios::in表示读取模式,std::ios::out表示写入模式)。
    • close(): 关闭文件。
    • is_open(): 判断文件是否已经打开。
    • good(): 判断文件流状态是否良好。
    #include <fstream>
    #include <iostream>
    
    int main() {
        std::fstream file;
        file.open("data.txt", std::ios::out | std::ios::app);
    
        if (file.is_open()) {
            std::cout << "File opened successfully." << std::endl;
            // 写入数据到文件
            file << "Appended line." << std::endl;
            file.close();
        } else {
            std::cerr << "Unable to open file." << std::endl;
        }
    
        return 0;
    }
    

这些函数和对象使得在C++中进行文件输入输出操作变得简单和方便。