幹了這麼多年C++開發,每次遇到文件讀取還得去問AI,真是慚愧!今天我決定把這些基礎的文件操作函數背下來,整理成這份速記指南。

在C++中,文件操作主要依賴於 <fstream> 頭文件中的類。掌握文件讀取是C++編程中的基礎技能之一。


必須掌握的類和頭文件

#include <fstream>   // 主要頭文件
#include <iostream>  // 用於輸出信息
#include <string>    // 用於讀取整行文本

三類文件流:

  • ifstream:讀取文件(輸入流)
  • ofstream:寫入文件(輸出流)
  • fstream:讀寫文件(雙向流)

必須掌握的函數

1. 打開文件

void open(const char* filename, ios::openmode mode);

示例:

ifstream fin;
fin.open("data.txt");

2. 判斷文件是否打開成功

bool is_open();

示例:

if (!fin.is_open()) {
    cerr << "打開文件失敗!" << endl;
}

3. 關閉文件

void close();

示例:

fin.close();

4. 讀取文件內容

逐行讀取(最常用)

getline(fin, line); // line 是 string 類型

示例:

string line;
while (getline(fin, line)) {
    cout << line << endl;
}

按空格分隔讀取(適合讀取數字或單詞)

int num;
while (fin >> num) {
    cout << num << endl;
}

逐字符讀取

char ch;
while (fin.get(ch)) {
    cout << ch;
}

5. 判斷是否讀取到文件末尾

bool eof();

示例:

while (!fin.eof()) {
    getline(fin, line);
    cout << line << endl;
}

使用建議

  • 推薦優先使用 ifstream 讀取文本文件
  • 讀取文本內容時,getline() 是最常用的方法
  • 使用完文件後務必調用 close(),避免資源泄露
  • 文件路徑建議使用絕對路徑或確保文件存在於程序運行目錄中

完整示例:讀取文本文件並逐行輸出

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

int main() {
    ifstream fin("example.txt");
    if (!fin.is_open()) {
        cerr << "無法打開文件!" << endl;
        return 1;
    }

    string line;
    while (getline(fin, line)) {
        cout << line << endl;
    }

    fin.close();
    return 0;
}

速記口訣

讀文件,用 ifstream
打開前,先判斷;
讀內容,getline 好;
結束後,記得 close

下次再遇到文件讀取,直接看這份筆記就行,不用再到處問AI了!