Đọc một tệp văn bản

C:
Đọc một tệp văn bản

Làm thế nào:

Để bắt đầu đọc một tệp văn bản trong C, bạn chủ yếu làm việc với các hàm fopen(), fgets(), và fclose() từ thư viện I/O tiêu chuẩn. Đây là một ví dụ đơn giản mà đọc một tệp gọi là example.txt và in nội dung của nó ra đầu ra chuẩn:

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *filePointer;
    char buffer[255]; // Bộ đệm để lưu trữ các dòng văn bản

    // Mở tệp ở chế độ đọc
    filePointer = fopen("example.txt", "r");

    // Kiểm tra xem tệp đã được mở thành công không
    if (filePointer == NULL) {
        printf("Could not open file. \n");
        return 1;
    }

    while (fgets(buffer, 255, filePointer) != NULL) {
        printf("%s", buffer);
    }

    // Đóng tệp để giải phóng tài nguyên
    fclose(filePointer);
    return 0;
}

Giả sử example.txt chứa:

Hello, World!
Welcome to C programming.

Kết quả sẽ là:

Hello, World!
Welcome to C programming.

Sâu hơn nữa

Đọc tệp trong C có một lịch sử phong phú, bắt nguồn từ những ngày đầu của Unix khi sự đơn giản và tinh tế của các luồng văn bản là cơ bản. Điều này đã dẫn đến việc áp dụng tệp văn bản cho nhiều mục đích, bao gồm cấu hình, ghi nhật ký, và giao tiếp giữa các tiến trình. Sự đơn giản của thư viện I/O tệp của ngôn ngữ C, được ví dụ qua các hàm như fopen(), fgets(), và fclose(), nhấn mạnh triết lý thiết kế của nó về việc cung cấp những công cụ cơ bản mà lập trình viên có thể sử dụng để xây dựng các hệ thống phức tạp.

Từ góc độ lịch sử, mặc dù những hàm này đã phục vụ tốt cho hàng không số ứng dụng, thực hành lập trình hiện đại đã nêu bật một số hạn chế, đặc biệt là liên quan đến xử lý lỗi, mã hóa tệp (ví dụ, hỗ trợ Unicode), và truy cập song song trong các ứng dụng đa luồng. Các cách tiếp cận khác trong các ngôn ngữ khác, hoặc ngay cả trong C sử dụng các thư viện như libuv hoặc Boost.Asio cho C++, cung cấp các giải pháp mạnh mẽ hơn bằng cách giải quyết trực tiếp những lo lắng này với các khả năng quản lý I/O tinh vi hơn, bao gồm các hoạt động I/O bất đồng bộ có thể cải thiện đáng kể hiệu suất của các ứng dụng xử lý nhiều hoạt động đọc tệp hoặc nhiệm vụ bị ràng buộc bởi I/O.

Bất chấp những tiến bộ này, việc học cách đọc tệp sử dụng thư viện I/O tiêu chuẩn trong C là rất quan trọng. Nó không chỉ giúp hiểu cơ bản về xử lý tệp, có thể áp dụng trong nhiều bối cảnh lập trình, mà còn cung cấp một nền tảng mà trên đó một người có thể đánh giá cao sự tiến hóa của các hoạt động I/O tệp và khám phá các thư viện và khung công tác phức tạp hơn cho xử lý tệp trong các ứng dụng hiện đại.