Câu lạc bộ Tin học dành cho học sinh Tiểu học

HỌC C++ 💡 Tiết 8 – XỬ LÝ FILE (File I/O) trong C++

Trạng thái

♥ Lượt xem: 10
♥ Lượt phản hồi: 0

Tham gia
28/10/2025
Bài viết
368
Điểm Like
1,748
Điểm Uy tín
364,562
Tí Tinh Tế
Miu Mềm Mại
Rồng Rực Rỡ
Tỵ Tinh Tường
Heo Hiền Hậu
Tuổi Mùi
Phù điêu Hổ
Phù điêu Rồng
Hổ Hào Hiệp
Ngựa Ngộ Nghĩnh
Dê Dịu Dàng
Tích cực hoạt động

🧠 I. Khái niệm cơ bản

File I/O (Input/Output) nghĩa là đọc và ghi dữ liệu từ/tới tệp tin trên máy tính.
C++ hỗ trợ điều này thông qua thư viện <fstream> gồm 3 lớp:
LớpChức năng
ofstreamGhi dữ liệu ra file
ifstreamĐọc dữ liệu từ file
fstreamVừa đọc vừa ghi

🧩 II. Tạo và ghi file

Mã:
#include <iostream>
#include <fstream>  // để dùng ofstream
using namespace std;

int main() {
    ofstream fileOut("data.txt");  // tạo hoặc mở file để ghi

    if (fileOut.is_open()) {
        fileOut << "Xin chao ban!\n";
        fileOut << "Day la dong thu hai.\n";
        fileOut << "C++ rat hay!";
        fileOut.close();  // đóng file lại
        cout << "Ghi file thanh cong!" << endl;
    } else {
        cout << "Khong the mo file!" << endl;
    }

    return 0;
}
📁 Kết quả:
Tạo ra file data.txt với nội dung:
Mã:
Xin chao ban!
Day la dong thu hai.
C++ rat hay!

📖 III. Đọc dữ liệu từ file

Mã:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main() {
    ifstream fileIn("data.txt");  // mở file để đọc
    string line;

    if (fileIn.is_open()) {
        while (getline(fileIn, line)) {
            cout << line << endl;  // in từng dòng
        }
        fileIn.close();
    } else {
        cout << "Khong the mo file!" << endl;
    }

    return 0;
}
📤 Kết quả trên màn hình:
Mã:
Xin chao ban!
Day la dong thu hai.
C++ rat hay!

⚙️ IV. Vừa đọc vừa ghi (fstream)

Nếu bạn cần đọc và ghi trong cùng chương trình, dùng fstream:
Mã:
#include <iostream>
#include <fstream>
using namespace std;

int main() {
    fstream file("test.txt", ios::in | ios::out | ios::app); 
    // ios::app => ghi nối tiếp
    // ios::in => đọc
    // ios::out => ghi

    if (file.is_open()) {
        file << "Dong moi duoc them!\n";
        file.seekg(0);  // quay lại đầu file để đọc
        string line;
        while (getline(file, line)) {
            cout << line << endl;
        }
        file.close();
    } else {
        cout << "Khong mo duoc file!" << endl;
    }

    return 0;
}

🧩 V. Chế độ mở file

Chế độÝ nghĩa
ios::inMở để đọc
ios::outMở để ghi
ios::appGhi nối tiếp (không ghi đè)
ios::truncGhi đè (xóa hết dữ liệu cũ)
ios::binaryMở file dạng nhị phân

🧮 VI. Ví dụ: Ghi và đọc điểm học sinh

Mã:
#include <iostream>
#include <fstream>
using namespace std;

int main() {
    // Ghi file
    ofstream out("diem.txt");
    int n;
    cout << "Nhap so hoc sinh: ";
    cin >> n;

    for (int i = 0; i < n; i++) {
        string ten;
        int diem;
        cout << "Ten: "; cin >> ten;
        cout << "Diem: "; cin >> diem;
        out << ten << " " << diem << endl;
    }
    out.close();

    // Đọc file
    ifstream in("diem.txt");
    cout << "\nDanh sach trong file:\n";
    string ten;
    int diem;
    while (in >> ten >> diem) {
        cout << ten << " - " << diem << endl;
    }
    in.close();

    return 0;
}
📁 File diem.txt:
Mã:
An 9
Binh 7
Chi 10

🧩 VII. Hình minh họa:

Mã:
Chương trình → [ofstream] → file.txt → [ifstream] → Màn hình

💪 VIII. Bài tập luyện tập

🧩 Bài 1:​

Tạo file ghichu.txt, ghi vào 3 dòng nội dung bất kỳ rồi đọc lại.

🧩 Bài 2:​

Ghi danh sách 5 học sinh gồm tên + điểm, sau đó đọc lại và tính điểm trung bình.

🧩 Bài 3 (nâng cao):​

Tạo chương trình quản lý file đơn giản:
  • Chọn 1: ghi thêm dữ liệu
  • Chọn 2: đọc dữ liệu
  • Chọn 3: thoát

🌟 Tóm tắt Tiết 8

Chức năngCú phápGhi chú
Ghi fileofstream file("a.txt");Dùng <<
Đọc fileifstream file("a.txt");Dùng getline() hoặc >>
Đóng filefile.close();Luôn nên có
Chế độios::in, ios::out, ios::appKết hợp được
Thư viện<fstream>Bắt buộc dùng
 

Trạng thái

♥ Lượt xem: 10
♥ Lượt phản hồi: 0

Trên Bottom