Thông tin tài liệu:
Bài giảng "Kỹ thuật lập trình: Tập tin" cung cấp cho người học các kiến thức: Khái niệm về FILE, các thao tác cơ bản với file trong C, các thao tác cơ bản với file trong C++. Cuối bài giảng có phần bài tập để người học ôn tập và củng cố kiến thức.
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Tập tin - Trịnh Tấn Đạt Tập tin (FILE)Trịnh Tấn ĐạtKhoa CNTT - Đại Học Sài GònEmail: trinhtandat@sgu.edu.vnWebsite: https://sites.google.com/site/ttdat88/Nội dung ▪ Khái niệm về FILE ▪ Các thao tác cơ bản với file trong C o Mở/Đóng FILE o Đọc/Ghi FILE o Con trỏ FILE o Binary FILE (option) o FILE và mảng ▪ Bài Tập ▪ Các thao tác cơ bản với file trong C ++ (tự tìm hiểu thêm - option)FILE▪ Theo định nghĩa trên Wikipedia về computer file: Một file trên máy tính là một tài nguyên dùng để lưu trữ thông tin lâu dài, sử dụng cho các chương trình máy tính.▪ Trong ngôn ngữ lập trình C/C++: File là kiểu đối tượng chứa các thông tin cần thiết để điều khiển, bao gồm một con trỏ trỏ đến buffer của nó, các chỉ mục và trạng thái của nó.▪ File là một kiểu dữ liệu có cấu trúc.▪ Một file dù được xây dựng bằng cách nào đi nữa cũng chỉ đơn giản là một dãy các byte ghi trên đĩa. Số byte của dãy chính là độ dài của file.▪ Có hai kiểu nhập xuất dữ liệu lên file: nhị phân và văn bản.▪ Làm việc với File chúng ta chỉ có các thao tác cơ bản như: tạo file mới, đọc dữ liệu trong file, ghi dữ liệu vào file, xóa file...▪ Trong lập trình C, dùng thư viện để thao tác trên FILECác thao tác cơ bản với file trong C▪ Khai báo và sử dụng FILE : Kiểu FILE *▪ Cú pháp : FILE *ten_con_tro_file;Ví dụ: FILE *f, *g; /* Khai báo hai biến con trỏ tệp */▪ Để làm việc với file, chúng ta cần biết vị trí của file (thông qua đường dẫn) để con trỏ kiểu FILE có thể tạo được luồng dữ liệu giữa người dùng và file trên thiết bị lưu trữ.Ví dụ: một file văn bản (*.txt) hoặc dạng (*.INP) được lưu trữ như sau C:/Desktop/my_document.txtTrong C khai báo con trỏ đến chuỗi ký tự lưu trữ đường dẫn và tên fileconst char *filePath = C:/Desktop/my_document.txt; // con trỏ đén hằng số kiểu chuỗi #include #include using namespace std; int main() { const char *filePath = C:/Desktop/my_document.txt; FILE *file; return 0; } FILE ▪ Open file (Mở FILE): Để mở một file, các bạn có thể sử dụng hàm fopen ▪ Cú pháp: FILE* fopen(const char *file, const char *mode);Trong đó :• file: tên tập tin cần mở. Có thể chỉ định một đường dẫn đầy đủ chỉ đến vị trí của tập tin.• mode: chế độ mở tập tin: chỉ đọc, để ghi (tạo mới), ghi thêm. ▪ Hàm dùng để mở file. Nếu thành công hàm cho con trỏ kiểu FILE ứng với file vừa mở. Các hàm liên quan khác sẽ làm việc với file thông qua con trỏ này. Nếu có lỗi hàm sẽ trả về giá trị NULL.FILE▪ Tập tin văn bản : là kiểu tập tin được lưu trữ các thông tin dưới dạng kiểu ký tự.▪ Truy xuất tập tin văn bản: o theo từng ký tự o theo từng dòng▪ Để mở file dạng văn bản dùng mode “t”Mở FILE▪ Mode: open fileMở FILE▪ Ví dụ const char *filePath = C:/Desktop/my_document.txt; FILE *file; file = fopen(filePath, rt); // doc file van ban if (!file) // (file == NULL) cout Đóng FILE▪ Đóng file (close FILE): Sau khi thao tác với file xong, các bạn cần đóng file lại để tránh những lỗi phát sinh ngoài ý muốn. Để đóng file, chúng ta sử dụng hàm fclose:▪ Cú pháp : int fclose(FILE *file); file: là con trỏ được dùng để lưu trữ địa chỉ của đối tượng FILE đang mở. Nếu đóng file thành công thì trả về giá trị 0, ngược lại trả về EOF (End of file)▪ Hàm fclose sẽ giải phóng tất cả dữ liệu chưa được xử lý trên file nếu chúng vẫn còn lưu trong buffer, đóng file lại, và giải phóng tất cả vùng nhớ mà đối tượng FILE sử dụng. const char *filePath = C:/Desktop/my_document.txt; FILE *file; file = fopen(filePath, rt); if (!file) // file == NULL cout FILE▪ Làm sạch vùng đệm - hàm fflush▪ Cú pháp: ▪ int fflush(FILE *fp);▪ Dùng làm sạch vùng đệm của tệp fp. Nếu lệnh thành công, hàm sẽ cho giá trị 0, trái lại nó cho hàm EOF.▪ Ví dụ: fflush(fp); // fp là con trỏ FILEGhi FILE▪ Ghi dữ liệu vào FILE.▪ Để mở file cho chế độ ghi file, chúng ta có các mode w, w+, a, a+.Ví dụ: Giả sử đọc file và dùng con trỏ fie để quản lý const char *filePath = C:/Desktop/my_document.txt; FILE *file; file = fopen(filePath, wt); // che do ghi if (!file) // file == NULL cout Ghi FILE▪ Các hàm cơ bản để ghi FILE▪ Hàm fputc: int fputc(int c, FILE *f);▪ Hàm fputc sẽ ghi ký tự có mã ASCII là biến c vào file được trỏ đến bởi con trỏ f.▪ Giá trị trả về là EOF nếu ghi dữ liệu thất bại, trả về mã ASCII của kí tự được ghi vào nếu thực hiện thành công.Ví dụ: FILE *file = fopen(filePath, wt ...