Buổi 7: Kiểu tập tin và nâng cao<br />
Giảng viên: TS. Lê Hoàng Sơn<br />
lehoangson@hus.edu.vn<br />
<br />
Lập trình tính toán khoa học kỹ thuật<br />
<br />
1<br />
<br />
Nội dung chính<br />
<br />
1<br />
<br />
Kiểu Tập Tin<br />
<br />
2<br />
<br />
Nâng Cao Về C<br />
<br />
3<br />
<br />
Bài tập<br />
<br />
2/24<br />
<br />
Lê Hoàng Sơn<br />
<br />
1. Kiểu tập tin (File)<br />
File là loại dữ liệu có thể ghi lên đĩa để dùng nhiều lần.<br />
Trong C chỉ có một loại File, nhưng cấu trúc của mỗi File<br />
có thể khác nhau.<br />
Cấu trúc này được hình thành khi ta ghi dữ liệu lên File,<br />
nó phụ thuộc vào hàm mà ta dùng để ghi dữ liệu lên đĩa.<br />
<br />
Có hai kiểu xuất/ nhập dữ liệu vào File:<br />
<br />
<br />
<br />
Nhị phân<br />
Văn bản<br />
3/24<br />
<br />
Lê Hoàng Sơn<br />
<br />
Kiểu xuất/nhập tập tin<br />
Nhị phân:<br />
<br />
<br />
<br />
Dữ liệu trong file ở dạng các số nhị phân<br />
Dữ liệu ghi lên tập tin không bị thay đổi và khi đóng tập tin thì mã<br />
kết thúc tập tin sẽ được ghi lên đĩa là -1<br />
<br />
Văn bản:<br />
<br />
<br />
<br />
<br />
<br />
Dữ liệu ở dạng text<br />
Khi xử lý ký tự xuống dòng và khi đóng tập tin thì mã kết thúc tập<br />
tin sẽ được ghi lên đĩa là 26<br />
Khi ghi một ký tự chuyển dòng lên đĩa (mã 10) sẽ ghi thành 2 ký tự<br />
mã 13 và mã 10.<br />
Khi đọc, nếu gặp hai ký tự liên tiếp là mã 10 và mã 13, sẽ gom lại<br />
thành một ký tự là mã 10.<br />
<br />
4/24<br />
<br />
Lê Hoàng Sơn<br />
<br />
Một số hàm xuất/ nhập chuẩn<br />
<br />
<br />
Mở file: Nếu thành công trả về kết quả là con trỏ FILE tương ứng<br />
với file vừa mở, ngược lại trả về giá trị NULL.<br />
<br />
<br />
<br />
<br />
Đóng file: Ðóng tập tin được chỉ đến bởi con trỏ f. Nếu thành công<br />
thì giá trị của hàm = 0 ngược lại có giá trị EOF. Sau khi đóng con<br />
trỏ f sẽ không còn trỏ đến file trước đó nữa<br />
<br />
<br />
<br />
<br />
int fclose(FILE *f)<br />
<br />
Làm sạch vùng đệm của tập tin được chỉ đến bởi con trỏ f. Nếu<br />
thành công cho giá trị 0, ngược lại cho giá trị EOF<br />
<br />
<br />
<br />
<br />
FILE *fopen(const char *tên_tập_tin,const char *kiểu_truy_cập);<br />
<br />
int fflush(FILE *f)<br />
<br />
Xóa một tập tin trên đĩa: Nếu thành công giá trị của hàm bằng 0 ,<br />
ngược lại cho giá trị EOF<br />
<br />
<br />
int unlink(const char *tên_tập_tin)<br />
<br />
5/24<br />
<br />
Lê Hoàng Sơn<br />
<br />