Trong thế giới lập trình, làm việc với file là một trong những kỹ năng cơ bản nhưng lại vô cùng quan trọng. Trong bài viết này, Stringee sẽ cùng các bạn khám phá cách sử dụng file trong ngôn ngữ lập trình C++, từ các khái niệm cơ bản như mở và đóng file đến các thủ thuật nâng cao.

1. Đọc và ghi File là gì?

Đọc file đơn giản là quá trình trích xuất dữ liệu từ một file đã tồn tại, trong khi ghi file là quá trình tạo ra một file mới hoặc ghi dữ liệu lên một file đã tồn tại.

>>> Xem thêm các bài viết khác tại đây:

Kiểu dữ liệu bool trong C++

Lệnh cin, cout và endl trong C++

Xử lý mảng trong C++ và những điều cần lưu ý

2. Sử dụng thư viện fstream trong C++

Trong C++, thư viện fstream cung cấp các lớp ifstream, ofstream và fstream để làm việc với file.

  • ifstream: Được sử dụng để đọc từ file.
  • ofstream: Được sử dụng để ghi vào file.
  • fstream: Kết hợp cả hai chức năng đọc và ghi.

3. Mở và đóng File

Để làm việc với file, chúng ta cần mở nó trước. Điều này được thực hiện thông qua hàm open(). Dưới đây là cú pháp của hàm open():

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

Trong đó, filename là tên của file cần mở và mode là chế độ mở file (VD: ios::in cho việc đọc, ios::out cho việc ghi, ios::app để thêm vào cuối file).

Sau khi hoàn thành công việc với file, chúng ta cần đóng file bằng cách sử dụng hàm close(). Điều này giúp giải phóng tài nguyên và tránh gây ra các vấn đề không mong muốn.

4. Một số chế độ (mode) khi mở file

Khi mở một file trong C++ bằng thư viện fstream, bạn có thể chỉ định các chế độ mở file để xác định cách bạn muốn sử dụng file đó. Dưới đây là một số chế độ phổ biến khi mở file:

  • ios::in: Chế độ này cho phép bạn đọc từ file. Nếu file không tồn tại, thì hàm mở file sẽ thất bại.
  • ios::out: Chế độ này cho phép bạn ghi vào file. Nếu file không tồn tại, thì nó sẽ được tạo ra. Nếu file đã tồn tại, nội dung của file sẽ bị ghi đè.
  • ios::app: Khi bạn muốn ghi thêm dữ liệu vào cuối file mà không làm mất nội dung đã tồn tại. Dữ liệu mới sẽ được thêm vào cuối file.
  • ios::ate: Khi mở file và di chuyển con trỏ đọc/ghi tới cuối file ngay sau khi mở file.
  • ios::binary: Chế độ này được sử dụng khi bạn muốn mở file ở chế độ nhị phân, nghĩa là không có sự chuyển đổi nào tự động cho dữ liệu.
  • ios::trunc: Khi ta chèn dữ liệu vào file, dữ liệu cũ sẽ bị xóa hết.

5. Đọc File trong C++

Để đọc dữ liệu từ file trong C++, chúng ta sử dụng lớp ifstream. Dưới đây là một ví dụ minh họa:

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

int main() {
    ifstream file("example.txt");
    if (!file.is_open()) {
        cout << "Không thể mở file!" << endl;
        return 1;
    }

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

    file.close();
    return 0;
}

6. Ghi File trong C++

Để ghi dữ liệu vào file trong C++, chúng ta sử dụng lớp ofstream. Dưới đây là một ví dụ minh họa:

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

int main() {
    ofstream file("example.txt");
    if (!file.is_open()) {
        cout << "Không thể tạo file!" << endl;
        return 1;
    }

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

Tổng kết

Việc làm việc với file là một phần quan trọng của việc phát triển ứng dụng trong ngôn ngữ lập trình C++. Bằng cách sử dụng thư viện fstream và các phương pháp được giới thiệu trong bài viết này, bạn có thể thực hiện các thao tác đọc và ghi file một cách dễ dàng và linh hoạt.

>>> Xem thêm các bài viết khác tại đây

Ngôn ngữ lập trình C và C++ khác nhau như thế nào?

Các kỹ thuật xây dựng layout cho một website


Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.

Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy,  Adavigo, bTaskee…

Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: