
CHƯƠNG 9: LẬP TRÌNH VỚI TẬP TIN
•Nội dung
Tập tin văn bản
Tập tin nhị phân
Con trỏ chỉ vị
Vùng đệm
Đóng mở tập tin, xóa vùng đệm
Nhập xuất ký tự
Các hàm nhập xuất theo kiểu văn bản
Các hàm nhập xuất theo kiểu nhị phân

Khái niệm
Tập tin là tập hợp các thông tin được đóng gói trên thiết bị lưu trữ.
Khi sử dụng tập tin dữ liệu được lưu trữ lâu dài và không bị mất khi tắt
máy tính. Ngoài ra khi cần thiết có thể truy xuất lại các dữ liệu này.
Tập tin văn bản
Đây là các tâp tin có thể xem và chỉnh sửa nội dung các tập tin bằng các
chương trình soạn thảo văn bản đơn giản như: các hệ soạn thảo mã nguồn
chương trình, chương trình Notepad của Windows, …
Mỗi tâp tin văn bản được lưu trữ dưới dạng văn bản(text) gồm nhiều dòng.
Tập tin nhị phân
Đây là tất cả các tập tin khác không có dạng văn bản. Mỗi tập tin nhị phân
do một phần mềm nào tạo ra thì sẽ có cấu trúc do phần mềm đó quy định.
Một số loại tập tin nhị phân thông dụng như:
Các tâp tin mã thực thi trên các hệ điều hành: *.exe, *.com
Các tập tin văn bản phức hợp: *.doc
Các tập tin bảng tính: *.xls
Các tập tin hình ảnh: *.bmp, *.gif, …

Con trỏ chỉ vị
• Khi một tập tin được mở để chuẩn bị làm việc, tùy theo cách thức mở tập
tin, một con trỏ chỉ vị sẽ được đặt tại vị trí đầu tập tin hoặc tại ví trí cuối tập
tin. Mỗi thao tác đọc/ghi sẽ tác động lên con trỏ chỉ vị của tâp tin, dữ liệu
tại đó sẽ bị thay đổi nếu đó là thao tác ghi lên tập tin. Sau khi thực hiện một
thao tác đọc/ghi, con trỏ chỉ vị tự động được dời đi một số byte đúng bằng
số byte đọc/ghi . Một thao tác đọc/ghi kế tiếp sẽ tác động lên vị trí mới của
con trỏ chỉ vị trên tập tin.
Vùng đệm
• Mỗi lần đọc/ghi thì thường tiến hành trên vùng đệm chứ không hẳn trên tập
tin. Chẳng hạn khi ghi một số nguyên thì số được đưa vào vùng đệm và khi
nào đầy thì vùng đệm mới được đẩy lên đĩa. Khi đọc, thông tin được lấy từ
vùng đệm, và chỉ khi nào vùng đệm đã trống rỗng thì máy mới lấy dữ liệu
từ đĩa chứa vào vùng đệm. Việc sử dụng vùng đệm sẽ giảm số lần nhập
xuất trên đĩa và nâng cao tốc tốc độ làm việc.

Đóng mở tập tin, xóa vùng đệm
• Các hàm trong mục này dùng chung cho hai kiểu nhị phân và văn bản
FILE *fopen(char *têntậptin, char *kiểu);
• Kiểu có thể có các giá trị sau:
• “”r” “rt” Mở một tập tin để đọc theo kiểu văn bản. Tập tin cần tồn
tại nếu không sẽ có lỗi.
• ”w” “wt” Mở một tập tin mới để ghi theo kiểu văn bản. Nếu tập tin
đã tồn tại nó bị xóa.
• “a” “at” Mở một tập tin để ghi bổ sung theo kiểu văn bản. Nếu tập
tin chưa tồn tại thì tạo tập tin mới.
• “rb” Mở một tập tin để đọc theo kiểu nhị phân. Tập tin cần tồn
tại nếu không sẽ có lỗi.
• “wt” Mở một tập tin mới để ghi theo kiểu nhị phân. Nếu tập tin
đãõtồn tại nó bị xóa.
• “at” Mở một tập tin để ghi bổ sung theo kiểu nhị phân. Nếu
tập tin chưa tồn tại thì tạo tập tin mới.

• “r+” “r+t” Mở một tập tin để đọc/ghi theo kiểu văn bản. Tập tin cần
tồn tại nếu không sẽ có lỗi.
• ”w+” “w+t” Mở một tập tin mới để đọc/ghi theo kiểu văn bản. Nếu tập
tin đãõ tồn tại nó bị xóa.
• “a+” “a+t” Mở một tập tin để đọc/ghi bổ sung theo kiểu văn bản. Nếu
tập tin chưa tồn tại thì tạo tập tin mới.
• “r+b” Mở một tập tin để đọc/ghi theo kiểu nhị phân. Tập tin cần
tồn tại nếu không sẽ có lỗi.
• “w+b” Mở một tập tin mới để đọc/ghi theo kiểu nhị phân. Nếu
tập tin đãõ tồn tại nó bị xóa.
• “a+b” Mở một tập tin để đọc/ghi bổ sung theo kiểu nhị phân.
Nếu tập tin chưa tồn tại thì tạo tập tin mới.

