Những kiến thức tổng quan về tệp C dành cho người lập trình

Trong lĩnh vực lập trình thì C là một ngôn ngữ được sử dụng phổ biến và rộng rãi nhất. Ngôn ngữ C có rất nhiều ứng dụng được sử dụng để phát triển phần mềm hệ thống, vì ngôn ngữ này đơn giản, mạnh mẽ và sử dụng hiệu quả với các lệnh trên máy.

Tệp được biết đến là một tập hợp hoặc luồng dữ liệu byte. Luồng dữ liệu này được lưu trữ có thể là tài liệu, hình ảnh đồ họa hay bất kỳ bộ sưu tập thông tin nào khác, được xác định dựa trên cấu trúc của tệp được viết. Hôm nay Box.edu sẽ tổng quan về tập C dành cho người lập trình, cùng theo dõi nhé!

👉 Xem thêm: Tổng quan những kiến thức cần biết về hàm strlen C tốt nhất

👉 Xem thêm: Những thông tin cần biết về toán tử Sizeof trong C

👉 Xem thêm: Tổng quan những kiến thức cần lưu ý về hàm C fopen

Mục lục bài viết

Tổng quan về tệp C dành cho người lập trình

tong-quan-ve-tep-c-danh-cho-nguoi-lap-trinh.jpg

Tổng quan về tệp C dành cho người lập trình

Thêm một kiến thức cần thiết mà nhà lập trình nào cũng phải nắm được đó chính là tổng quan về tệp C dành cho người lập trình. Sau đây sẽ là những tệp C phổ biến dành cho những người mới học về lập trình và cụ thể đặc điểm cũng như cấu trúc của những tệp này như thế nào cùng tìm hiểu tiếp nhé!

Văn bản ASCII 

Khi nhắc đến các tệp C dành cho người lập trình thì không thể không nhắc đến văn bản ASCII. Đây là loại tệp văn bản phổ biến nhất được các lập trình viên ưa chuộng sử dụng. Tệp văn bản ASCII là một tập hợp hoặc một chuỗi các ký tự. Trong ngôn ngữ lập trình C, các tệp này chỉ có thể được xử lý theo hướng chuyển tiếp. Do đó mà các lập trình viên thường sẽ sử dụng định dạng tệp này chỉ với một thao tác bao gồm: đọc, ghi hoặc nối lại với nhau tại một thời điểm.

Tập tin nhị phân 

Tiếp theo phải kể đến đó là tệp nhị phân. Tệp nhị phân cũng là một tập hợp thông tin được lưu trữ dưới dạng byte. Dựa vào thiết kế của ngôn ngữ C, byte và ký tự chỉ tương đương nhau. Một tệp nhị phân không được xử lý bằng ngôn ngữ C, có nghĩa là không có quá trình xử lý cụ thể nào được thực hiện trên byte khi nó được chuyển đến và đi từ tệp. Trong đó nó sẽ bao gồm các loại hàm và tệp cụ thể như sau:

Xử lý tệp trong C

Một tệp trong ngôn ngữ C sẽ được truy cập bằng con trỏ FILE.

TẬP TIN * fp;

Trên thực tế có rất nhiều hàm xử lý tệp có sẵn trong C. Một vài hàm xử lý tệp phổ biến đó là:

  1. fopen ()
  2. fclose ()
  3. fseek ()
  4. ftell ()
  5. fread ()
  6. fwrite ()
  7. fgetc ()
  8. fputc ()

Hàm fopen () 

Thêm một hàm nổi bật trong tổng hợp tệp C đối với lập trình đó là hàm fopen(). Thao tác này sẽ mở một tệp và khởi tạo luồng I / O cho tệp đã mở sẵn. Cú pháp : FILE * fp = fopen (const char * path, const char * mode);

Hàm này sẽ chấp nhận hai tham số. Trong khi tham số đầu tiên là đường dẫn tệp sẽ được xử lý, tham số thứ hai là chế độ cho tệp được mở. Fopen () có 6 chế độ khác nhau có thể được sử dụng để mở tệp bao gồm:

Các chế độ tệp khác nhau của fopen () đó là:

r Tệp chỉ được mở để đọc
w Tệp chỉ được mở để ghi (tệp không cần tồn tại)
một Tệp được mở để bổ sung (tệp không cần tồn tại)
r+ Tệp được mở để đọc và ghi. Con trỏ được đặt ở đầu tệp đã mở
w+ Tệp được mở để đọc và ghi, và dữ liệu sẽ bị ghi đè
a+ Tệp được mở để đọc và ghi, và dữ liệu được thêm vào nếu đã tồn tại

 

Lưu ý rằng:

Ngoài những tổng quan về tệp C dành cho người lập trình ở trên thì còn có các chế độ như rb, có nghĩa là tệp được mở ở chế độ đọc dưới dạng tệp nhị phân. Điều này có thể giúp ích cho bạn khi đang cố gắng mở các tệp không phải là * .txt.

Kết quả là fopen () sẽ trả về một con trỏ cho luồng tệp, nhưng nếu người dùng cố gắng truy cập tệp không tồn tại hoặc cố truy cập vào tệp được bảo vệ đọc thì fopen () sẽ trả về 0.

Ví dụ tổng quan về tệp C dành cho người lập trình

vi-du-tong-quan-ve-tep-c-danh-cho-nguoi-lap-trinh.jpg

Ví dụ tổng quan về tệp C dành cho người lập trình

TẬP TIN * fp;

fp = fopen (“test.txt”, “a +”);

Ở ví dụ trên biểu thị rằng người dùng đang mở tệp có tên test.txt với chế độ a +. Trình biên dịch C này đồng thời sẽ tìm kiếm tệp trong thư mục nơi mà mã được viết, vì đường dẫn này không được chỉ định.

Hàm fclose ()

Tiếp theo sẽ là một hàm quan trọng trong lập trình đó là hàm fclose. Hàm này được sử dụng để đóng một tệp đang mở. Ngoài ra nó cũng làm sạch các bộ đệm liên quan đến tệp cụ thể đó. Cú pháp cụ thể là:

int fclose (FILE * stream);

Hàm fclose () này nhận một con trỏ tệp đến tệp đã mở. Kiểu trả về thường là int và sẽ trả về 0 nếu tệp được đóng thành công.

Tổng quan về tệp C dành cho người lập trình – hàm fseek ()

Hàm này được sử dụng để đặt chỉ báo con trỏ tệp trong luồng tệp.

int fseek (FILE * stream, long offset, int whence);

Hàm fseek () cũng chấp nhận 3 tham số: tham số đầu tiên là con trỏ FILE, tham số thứ hai là giá trị bù đắp hoặc số byte cần tìm và tham số thứ ba chính là chấp nhận ba giá trị đã xác định là SEEK_SET, SEEK_CUR hoặc SEEK_END. Trong khi SEEK_SET biểu thị vị trí bắt đầu của luồng, thì SEEK_CUR lại biểu thị vị trí của chỉ báo con trỏ tệp hiện có trong luồng. Đồng thời XEMK_END sẽ biểu thị vị trí kết thúc của luồng.

Nếu vị trí chỉ báo con trỏ tệp được đặt, fseek () trả về giá trị 0.

Hàm ftell ()

Hàm ftell () sẽ trả về vị trí chỉ báo con trỏ tệp của luồng tệp nhất định với cú pháp là:

long int ftell (FILE * stream);

Đặc biệt hàm ftell () chỉ chấp nhận một tham số, đó là luồng tệp. Hàm trả về vị trí của chỉ báo khi thành công hoặc hàm sẽ trả về kết quản là -1L.

Hai hàm fread () và fwrite ()

Hàm fread () được sử dụng để đọc dữ liệu từ luồng tệp vào mảng còn hàm fwrite thì được sử dụng để ghi dữ liệu vào luồng tệp từ mảng.

Cú pháp:

size_t fread (void * ptr, size_t size, size_t nmemb, FILE * stream);

size_t fwrite (const void * ptr, size_t size, size_t nmemb, FILE * stream)

fread () và fwrite () có bốn tham số chính đó là: tham số đầu tiên là con trỏ đến mảng trong đó dữ liệu phải được lưu trữ hoặc ghi, con trỏ thứ hai là kích thước tính bằng byte của mỗi phần tử được đọc và tham số thứ ba chính là số phần tử được đọc và tham số thứ tư là luồng tệp mà từ đó các phần tử được đọc hoặc các phần tử được ghi.

Tổng quan về tệp C dành cho người lập trình – fgetc ()

Hàm fgetc () cũng được sử dụng để đọc một ký tự từ một tệp. Kiểu trả về chính là int as fgetc () và mang giá trị ASCII (0-255) của ký tự được đọc từ tệp. Nếu tất cả các ký tự được đọc từ đầu tệp hoặc đến cuối tệp, thì hàm fgetc () sẽ trả về “EOF”, biểu thị ở phần cuối của tệp. Cụ thể cú pháp là:

int fgetc (FILE * luồng);

Một đặc điểm khác biệt của hàm fgetc () đó là nó chỉ chấp nhận một tham số là luồng tệp.

Hàm Fputc ()

Phương thức fputc () này được sử dụng để ghi từng ký tự vào trong tệp. Với cú pháp đơn giản là:

int fputc (int c, FILE * stream);

Phương thức này sẽ chấp nhận hai tham số. Tham số đầu tiên chính là giá trị ký tự (0-255) được ghi vào tệp và tham số thứ hai là dòng tệp. Hàm fputc () trả về ký tự nếu ký tự được viết thành công còn nếu không, nó sẽ trả về giá trị là “EOF”.

Tổng kết

Hy vọng rằng những chia sẻ trên từ Box.edu sẽ giúp các bạn có thêm những kiến thức quan trọng tổng quan về tệp C dành cho người lập trình. Đặc biệt với những người mới bắt đầu thì việc nắm bắt những kiến thức này là rất cần thiết. Do vậy bản thân mỗi người lập trình cũng cần tìm hiểu về các tệp này một cách cẩn thận và chính xác nhất.

5/5 - (5 bình chọn)
Xin chào các bạn! Mình là Hà Nguyên Phương Hiện đang là tác giả của Box.edu.vn website nổi tiếng chuyên review, đánh giá, giới thiệu các khóa học hay nhất hiện nay.